1
我無法弄清楚如何編寫一個在.NET中從JSON反序列化對象列表的類。如何反序列化一個沒有名字的JSON數組?
從JSON規範,我們瞭解到,這是有效的JSON:
[
{
"precision": "zip",
"Latitude": 37.7668,
"Longitude": -122.3959,
"Address": "",
"City": "SAN FRANCISCO",
"State": "CA",
"Zip": "94107",
"Country": "US"
},
{
"precision": "zip",
"Latitude": 37.371991,
"Longitude": -122.026020,
"Address": "",
"City": "SUNNYVALE",
"State": "CA",
"Zip": "94085",
"Country": "US"
} ]
所以我寫這個類來處理反序列化:
using System;
using System.Collections.Generic;
using System.Web.Script.Serialization;
namespace JsonRfc{
[Serializable]
public class Location {
public string Precision;
public double Latitude;
public double Longitude;
public string Address;
public string City;
public string State;
public string Zip;
public string Country;
public Location(){}
public static Location DeserializedJson(string responseJson)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
return jsSerializer.Deserialize<Location>(responseJson);
}
}
[Serializable]
public class Locations {
public List<Location> Location;
public Locations(){}
public static Locations DeserializedJson(string responseJson)
{
JavaScriptSerializer jsSerializer = new JavaScriptSerializer();
return jsSerializer.Deserialize<Locations>(responseJson);
}
}
}
反序列化對象爲null,儘管有有效的JSON傳遞該方法。
我嘗試過的其他事情失敗包括:使位置成爲一個數組而不是一個列表(so:public Location [] Location;),並反序列化到位置,即使Json包含位置數組。
那麼,.NET開發人員如何期望反序列化一組對象?我預計上述工作,而不是。
這只是一個瘋狂的猜測。嘗試使'Locations'成爲一個列表。 '公開課地點:列表 {...' –
climbage