反序列化json数组

时间:2013-11-15 10:07:44

标签: c# json javascriptserializer

我想反序列化一个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 count为零。我只需要使用路径值。

3 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

尝试

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

因为您尝试反序列化集合(List),但s对象不是集合。

答案 2 :(得分:0)

您输入的json不是list.Change      Deserialize<List<myObject>Deserialize<myObject>