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