[英]Error in reading JSON file
我需要解析/读取这个json文件。
[{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"interior","shotTypeAbbreviation":"I","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_396.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_196.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_400.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_300.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_98.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_175.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_i_oem_1_423.jpg"],"source":"OEM","vdpOrder":3},{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"exterior","shotTypeAbbreviation":"R","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_423.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_400.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_98.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_196.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_396.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_175.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_r_oem_1_300.jpg"],"source":"OEM","vdpOrder":6},{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"exterior","shotTypeAbbreviation":"RQ","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_98.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_400.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_175.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_423.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_396.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_300.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_1_196.jpg"],"source":"OEM","vdpOrder":2},{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"exterior","shotTypeAbbreviation":"FQ","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_98.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_400.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_175.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_300.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_423.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_196.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_1_396.jpg"],"source":"OEM","vdpOrder":1},{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"exterior","shotTypeAbbreviation":"RQ","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_300.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_196.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_175.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_423.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_396.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_98.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_rq_oem_2_400.jpg"],"source":"OEM","vdpOrder":7},{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"exterior","shotTypeAbbreviation":"FQ","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_196.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_400.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_98.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_423.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_396.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_300.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_fq_oem_2_175.jpg"],"source":"OEM","vdpOrder":5},{"children":[],"id":"dam/photo/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1","site":"dam","authorNames":["Volvo Cars of North America, Inc."],"captionTranscript":"2001 Volvo V70 XC AWD 4dr Wagon ","type":"PHOTOS","subType":"exterior","shotTypeAbbreviation":"S","photoSrcs":["/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_185.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_400.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_131.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_196.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_396.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_87.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_276.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_300.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_423.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_175.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_500.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_150.jpg","/volvo/v70/2001/oem/2001_volvo_v70_wagon_xc_s_oem_1_98.jpg"],"source":"OEM","vdpOrder":4}]
这是我用于使用JSON.net反序列化的类代码
public class Photo { public List<Children> children; } public class Children { public string id; public string site; public List<string> authorNames; public string captionTranscript; public string type; public string subType; public string shotTypeAbbreviation; public List<string> photoSrcs; public string source; public string vdpOrder; } StreamReader sr = new StreamReader(_filename); string str = sr.ReadToEnd(); sr.Close(); Photo p = JsonConvert.DeserializeObject<Photo>(str);// this line gives error
但我收到错误
无法将当前JSON数组(例如[1,2,3])反序列化为类型“ WindowsFormsApplication1.Photo”,因为该类型需要JSON对象(例如{“ name”:“ value”})才能正确反序列化。 要解决此错误,可以将JSON更改为JSON对象(例如{“ name”:“ value”}),也可以将反序列化类型更改为数组,或者将实现集合接口的类型(例如ICollection,IList)更改为List,例如List从JSON数组反序列化。 还可以将JsonArrayAttribute添加到类型中,以强制其从JSON数组反序列化。 路径'',第1行,位置1。
您的json是一个数组/列表。 所以反序列化到一个列表。
var photos = JsonConvert.DeserializeObject<List<Photo>>(json);
public class Photo
{
public List<object> children { get; set; }
public string id { get; set; }
public string site { get; set; }
public List<string> authorNames { get; set; }
public string captionTranscript { get; set; }
public string type { get; set; }
public string subType { get; set; }
public string shotTypeAbbreviation { get; set; }
public List<string> photoSrcs { get; set; }
public string source { get; set; }
public int vdpOrder { get; set; }
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.