簡體   English   中英

作法:JSON反序列化

[英]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數據

嘗試JavaScriptSerializer

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM