[英]How to: JSON Deserialization
我一直試圖在C#中找到一種反序列化的方法,但不幸的是,沒有運氣,
如果有人可以提供幫助,我將非常感激,這是json數據:
{
"138c399": [
"A1E67B",
39.826,
-76.9241,
238,
15400,
402,
"2573",
"T-KDCA1",
"B772",
"N221UA",
1367747636,
"KWI",
"IAD",
"UA981",
0,
-1280,
"UAL981",
1367748699
],
"138c3c8": [
"89911F",
45.3878,
25.8222,
290,
35975,
460,
"2362",
"T-LROP1",
"B744",
"B-18711",
1367747646,
"TPE",
"FRA",
"CI5621",
0,
0,
"CAL5621",
1367754205
],
"full_count": 3796,
"version": 4
}
編輯:我更改了json數據
var _object = JavaScriptSerializer.Deserialize<dynamic>(yourJSON);
嘗試http://james.newtonking.com/pages/json-net.aspx ,這是一個很棒的類,有關將json,xml序列化和反序列化為對象,反之亦然。
我會按照YvesR的建議使用Json.NET,事實上,事實上,這些天實際上也被Microsoft使用(在ASP.NET MVC Web API中)-他們實質上拋棄了對其內部JSON序列化技術(即JavaScriptSerializer)的支持。
您是否正在尋找這樣的東西:)(使用Json.Net )
var flights = JObject.Parse(json)
.Children().Cast<JProperty>()
.Select(p => new { Key = p.Name, Values = p.Value.ToArray() })
.Select(j => new
{
id = j.Key,
hex = (string)j.Values[0],
lat = double.Parse(j.Values[1].ToString(), CultureInfo.InvariantCulture),
lon = double.Parse(j.Values[2].ToString(), CultureInfo.InvariantCulture),
dir = (int)j.Values[3],
alt = (int)j.Values[4],
speed = (int)j.Values[5],
radar = (string)j.Values[7],
plane = (string)j.Values[8],
reg = (string)j.Values[9],
time = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc).Add(TimeSpan.FromSeconds((int)j.Values[10])),
from = (string)j.Values[11],
to = (string)j.Values[12],
callsign = (string)j.Values[13],
})
.ToList();
這是有關JSON序列化和反序列化的值得一讀的文章。 希望這會幫助你。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.