我有這樣的JSON:C#Json.Net - 如何反序列化複雜對象谷歌海拔
{
"results" : [
{
"elevation" : 25.51896667480469,
"location" : {
"lat" : -26.90408425509977,
"lng" : -49.04650926589966
},
"resolution" : 152.7032318115234
}
],
"status" : "OK"
}
這個類:
public class RootObject
{
public Elevacao[] results { get; set; }
public string status { get; set; }
}
public class Elevacao
{
public Decimal elevation { get; set; }
public Decimal resolution { get; set; }
public dados[] location { get; set; }
}
public class dados
{
public Decimal lat { get; set; }
public Decimal lng { get; set; }
}
此代碼:
public ActionResult Teste()
{
var url = "http://maps.googleapis.com/maps/api/elevation/json?locations=-26.904084255099768,-49.04650926589966&sensor=false&format=json";
var json = new WebClient().DownloadString(url);
RootObject m = JsonConvert.DeserializeObject<RootObject>(json);
return View();
}
而這個錯誤:
Cannot deserialize the current JSON object (e.g. {"name":"value"}) into type 'TCC.Controllers.dados[]' because the type requires a JSON array (e.g. [1,2,3]) to deserialize correctly.
To fix this error either change the JSON to a JSON array (e.g. [1,2,3]) or change the deserialized type so that it is a normal .NET type (e.g. not a primitive type like integer, not a collection type like an array or List<T>) that can be deserialized from a JSON object. JsonObjectAttribute can also be added to the type to force it to deserialize from a JSON object.
Path 'results[0].location.lat', line 6, position 20.
我哪裏出錯了?
您mispasted您的錯誤。 – SLaks
我認爲不是錯誤,你打印你的行動結果兩次 –
你不明白什麼部分的明確和非常詳細的錯誤信息? – SLaks