【问题标题】:Need help deserializing dictionary Json in WPF需要帮助在 WPF 中反序列化字典 Json
【发布时间】:2011-08-16 06:40:24
【问题描述】:

我正在尝试解析一个 Json 字符串并将一个部分放入字典中。我遇到了一个问题,试图反序列化成字典需要“键”和“值”术语,这对我来说是不可用的。任何人都可以为我推荐一个解决方法吗?如果可能的话,我更喜欢坚持使用 DataContractJsonSerializer。非常感谢您。

{ “盒子”:2, “盒子”: [ { “苹果”:“6”, “香蕉”:“3”, “橙子”:“4”, “柠檬”:“2” }, { “桃子”:“4”, “酸橙”:“5”, “瓜”:“5”, “苹果”:“2” } ] }

【问题讨论】:

    标签: c# json dictionary deserialization


    【解决方案1】:

    我强烈建议您查看JSON.NET。这是一个功能齐全且功能强大的库,是(在我看来)在任何 .NET 应用程序中处理 JSON 的最佳方式。

    【讨论】:

      【解决方案2】:

      还有一个 JSON 序列化库随 MongoDB 的 C# 驱动程序一起提供。你可以开始阅读它here

      【讨论】:

        【解决方案3】:

        您也可以使用快速轻量级的ServiceStack's Json Serializer 为您处理此问题,它允许您反序列化强类型 POCO 或动态使用 JsonObject:

        使用强类型 POCO

        var fruitsJson = "{ \"boxes\": 2, \"box\": [ { \"apples\": \"6\", \"bananas\": \"3\", \"oranges\": \"4\", \"lemons\": \"2\" }, { \"peaches\": \"4\", \"limes\": \"5\", \"melons\": \"5\", \"apples\": \"2\" } ] }";
        
        public class Fruits
        {
            public int boxes { get; set; }
            public List<Dictionary<string,string>> box { get; set; }
        }
        
        var fruits = fruitsJson.FromJson<Fruits>();
        

        动态使用 JsonObject

        var jsonObj = JsonObject.Parse(fruitsJson);
        var boxes = jsonObj["boxes"];
        var box = jsonObj["box"].FromJson<List<Dictionary<string,string>>>();
        

        【讨论】:

          猜你喜欢
          • 2018-05-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-15
          • 2015-08-07
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多