【问题标题】:c# How to retrieve Json data into an arrayc#如何将Json数据检索到数组中
【发布时间】:2010-11-30 09:05:09
【问题描述】:

我找到了可以解析 Json 数据的不同库,但我没有找到任何关于如何将数据放入 C# 数组或列表的文档。

我得到了这个 Json 数据:

{"001":{"姓名":"John", "电话":["Mob - 98837374","Mob - 98363627"]}, "002":{"姓名":"汤姆", "电话":["Mob - 49858857"]}}

有人知道吗? :)

编辑

OP 发布的有用细节作为 cmets 重新发布为 AnthonyWJones 的问题编辑

我的代码使用 JSON.NET:

StringBuilder sb = new StringBuilder();
List<string> entities = (List<string>)JsonConvert.DeserializeObject(responseFromServer, typeof(List<string>));
foreach (string items in entities) {
  sb.Append(items);
}

但是我调试的时候总是报错:

警告 1 对“System.DateTimeOffset”类型的引用声称它是在“c:\Program >> Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\mscorlib.dll”中定义的,但它不能>> 找到 c:\Div\Json dot net\Bin\Newtonsoft.Json.dll"

【问题讨论】:

  • 你看过哪些库?您能否展示您尝试转换为 C# 数组的尝试?
  • 您应该将反序列化的类发布到。

标签: c# arrays json


【解决方案1】:

看看这个:Parsing JSON using Json.net

这里是一些用于序列化和反序列化数组的 Json.NET 特定文档:Serializing Collections with Json.NET

【讨论】:

    【解决方案2】:

    您将出于什么目的使用它...如果您在客户端使用它,请使用相同的 json 数据,因为它的性能会非常好,但如果您在服务器端需要它然后搜索将 json 字符串转换为数组列表的替代方法....

    【讨论】:

      【解决方案3】:

      目前的 JSON 结构存在一些问题。它似乎使用诸如“001”和“002”之类的属性名称作为数据。这在 Javascript 中很好,但在 C# 中处理起来确实很棘手。更好的结构是:-

      [ {"ID": "001", "Name":"John", "Phone":["Mob - 98837374","Mob - 98363627"]},
        {"ID":"002", "Name":"Tom", "Phone":["Mob - 49858857"]} ]
      

      然后像其他人所指出的那样,可以更有效地使用 JSON.NET。

      【讨论】:

      • 我使用 JSON.NET 的代码:StringBuilder sb = new StringBuilder(); List 实体 = (List)JsonConvert.DeserializeObject(responseFromServer, typeof(List)); foreach(实体中的字符串项){ sb.Append(items);但是我在调​​试时总是收到一个错误:“警告 1 引用类型 'System.DateTimeOffset' 声称它是在 'c:\Program Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\mscorlib 中定义的。 dll',但是找不到c:\Div\Json dot net\Bin\Newtonsoft.Json.dll"
      【解决方案4】:

      由于我正在为 Windows 移动设备开发,因此 Json.net 似乎太大了。尝试调试时出现错误,我看到整个设备的内存已被消耗。

      无论如何...我想我会自己解析 Json 字符串,因为我知道字符串会得出什么结论。

      还是谢谢你的建议。

      堆栈溢出的人很棒!

      【讨论】:

      • 最好对答案发表评论,而不是将答案点用作讨论区。
      猜你喜欢
      • 2019-03-16
      • 1970-01-01
      • 1970-01-01
      • 2017-08-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-26
      • 2011-02-01
      相关资源
      最近更新 更多