【问题标题】:How to: JSON Deserialization如何:JSON 反序列化
【发布时间】:2013-05-05 10:22:01
【问题描述】:

我一直试图找到一种在 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 数据

【问题讨论】:

    标签: c# .net json json-deserialization


    【解决方案1】:

    试试JavaScriptSerializer

    var _object = JavaScriptSerializer.Deserialize<dynamic>(yourJSON);
    

    【讨论】:

      【解决方案2】:

      试试http://james.newtonking.com/pages/json-net.aspx,关于序列化和反序列化 json、xml 到对象的所有内容,反之亦然。

      【讨论】:

        【解决方案3】:

        你在寻找这样的东西吗:)(使用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 数据结构,,
        【解决方案4】:

        我会按照 YvesR 的建议使用 Json.NET,事实上,这些天微软也在使用它(在 ASP.NET MVC Web API 中)——他们基本上放弃了对其内部 JSON 序列化技术的支持(即 JavaScriptSerializer )。

        【讨论】:

          【解决方案5】:

          Here 是一篇关于 JSON 序列化和反序列化的值得一读的文章。希望这会对你有所帮助。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-02-27
            • 2015-05-19
            • 1970-01-01
            • 2021-01-22
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多