c#如何将Json数据检索到数组中

时间:2009-09-22 11:30:26

标签: c# arrays json

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

我得到了这个Json数据:

{“001”:{“姓名”:“约翰”,“电话”:[“Mob - 98837374”,“Mob - 98363627”]},  “002”:{“姓名”:“汤姆”,“电话”:[“Mob - 49858857”]}}

有人知道吗? :)

修改

OP发布的有用详细信息作为评论由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&gt;&gt;中定义Files \ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ WindowsCE \ mscorlib.dll',但它不能&gt;&gt;找到c:\ Div \ Json dot net \ Bin \ Newtonsoft.Json.dll“

  

4 个答案:

答案 0 :(得分:3)

看看这个:Parsing JSON using Json.net

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

答案 1 :(得分:0)

出于何种目的使用它...如果您在客户端使用它,请使用相同的 json 数据,因为它的性能会很高但是如果您需要它在服务器端然后搜索将 json字符串转换为数组列表 ....

的替代方法

答案 2 :(得分:0)

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

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

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

答案 3 :(得分:0)

由于我正在为Windows移动设备开发,看起来Json.net太大了。尝试调试时出错,我发现整个设备的内存都被消耗了。

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

无论如何,谢谢你的建议。

Stack溢出的人很棒!