今天用NewtonSoft.JSon解析一个天气数据,数据格式如:
{"status":1,"detail":"/u6570/u636e/u83b7/u53d6/u6210/u529f","data":[[{"date":"2014-01-01","dis_id":"1119","dis_name":"/u5f90/u5dde/u5e02","url":"http:////www.tianqiyubao.com//local.php?dis_id=1119","weather":"1","wind":"/u897f/u98ce3-4/u7ea7","weather_name":"/u6674","weather_pic":"styles//images//icon2//day//1.png","humidity":"","tem_min":"1","tem_max":"13","sunrise":"07:17","sunset":"17:12","pm":"109","air":"/u826f","day_night":[{"date":"2014-01-01","dis_id":"1119","dis_name":"/u5f90/u5dde/u5e02","url":"http:////www.tianqiyubao.com//local.php?dis_id=1119","weather":"1","wind":"/u897f/u98ce3-4/u7ea7","weather_name":"/u6674","weather_pic":"styles//images//icon2//day//1.png","humidity":"","tem":"13"},{"date":"2014-01-01","dis_id":"1119","dis_name":"/u5f90/u5dde/u5e02","url":"http:////www.tianqiyubao.com//local.php?dis_id=1119","weather":"1","wind":"/u5317/u98ce3-4/u7ea7","weather_name":"/u6674","weather_pic":"styles//images//icon2//night//1.png","humidity":"","tem":"1"}]}]]}
结果就老报一个错误。
Cannot deserialize JSON array (i.e. [1,2,3]) into type 'SweetWeather.MoreDayWeatherInfoFullDay'.
The deserialized type must be an array or implement a collection interface like IEnumerable, ICollection or IList.
To force JSON arrays to deserialize add the JsonArrayAttribute to the type. Path 'data[0]', line 1, position 69.
最后还是报错。仔细发现有两个方框号,原来是自己实体类的设计有问题,
原实体类:
public string status { get; set; }
public string detail { get; set; }
public List<MoreDayWeatherInfoFullDay> data { get; set;
更正后的实体类:
public string status { get; set; }
public string detail { get; set; }
public List<List<MoreDayWeatherInfoFullDay>> data { get; set; }
正确无误了。