2013-11-15 200 views
1

我想反序列化JSON字符串,但不知何故,我没有得到正确的值:( 这是输入JSON字符串反序列化JSON阵列

{ 
    "files":[ 
    {"path":"/c/asd/input.txt","size":13}, 
    {"path":"/c/asd/input.txt","size":136}, 
    {"path":"/c/asd/input.txt","size":483}, 
    {"path":"/c/asd/input.txt","size":136} 
    ], 
    "md5sum":"bbd88df7b2d8c95f922ebf0d718b5687" 
} 

创建一个类为它

public class Files 
    { 
    public string path { get; set; } 
    public int size { get; set; } 
    } 
public class myObject 
    { 
    public List<Files> files { get; set; } 
    public string md5sum { get; set; } 
    } 

,并试图使用JavaScriptSerializer:

var jss = new JavaScriptSerializer(); 
List<myObject> obj = s.Deserialize<List<myObject>>(File.ReadAllText(json)); 

我在做什么错OBJ计数?零。我只需要使用路径值。

回答

4

这是一个根对象,而不是一个列表。尝试:

var obj = s.Deserialize<myObject>(File.ReadAllText(json)); 

另外,我假设json这里是一个文件的路径,而不是JSON本身。

0

尝试

jss.Deserialize<myObject>(File.ReadAllText(json)); 

,因为你试图反序列化的集合(列表),但S对象是不是一个集合。

0

你输入JSON是不是list.Change Deserialize<List<myObject>Deserialize<myObject>