2009-09-22 24 views
4

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

我得到这个JSON数据:

{ “001”:{ “名称”: “约翰”, “电话”: “暴民 - 98837374”, “暴民 - 98363627”]}, “002 “:{”Name“:”Tom“,”Phone“:[”Mob - 49858857“]}}

任何人都有线索? :)

编辑:使用JSON.NET由OP张贴评论重新张贴由AnthonyWJones

我的代码的问题编辑

有用的细节:

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

但我经常在我调试时遇到错误:

警告1在'c:\ Program Files \ Microsoft.NET \ SDK \ CompactFramework \ v3.5 \ WindowsCE \ mscorlib.dll'中定义了类型'System.DateTimeOffset'声明,但它可以>>没有找到C:\股利\ Json的点网\ BIN \ Newtonsoft.Json.dll”

+1

你看过哪些库?你可以显示你试图转换为C#数组的尝试吗? – 2009-09-22 11:35:24

+0

您应该将您的反序列化类发布到。 – jfar 2009-09-23 18:01:23

回答

0

为什么你的目标ng来使用它...如果你在客户端使用它,请使用相同的数据,因为它在性能方面会很大,但如果你在服务器端需要它,那么搜索另一种方法,将json字符串转换为数组列表 ....

0

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

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

然后JSON.NET正如别人指出的可以更有效地使用。

+0

我的代码使用JSON。NET: StringBuilder sb = new StringBuilder(); List entities =(List )JsonConvert.DeserializeObject(responseFromServer,typeof(List )); foreach(实体中的字符串项) sb.Append(items); sb.Append(items); } 但是,当我调试,我总是得到一个错误: “警告参考键入它在“C定义的 'System.DateTimeOffset' 索赔:\ Program Files文件\ Microsoft.NET \ SDK \ CompactFramework \ V3。 5 \ WindowsCE \ mscorlib.dll',但无法找到c:\ Div \ Json dot net \ Bin \ Newtonsoft.Json.dll“ – Ikky 2009-09-22 11:52:23

0

由于我正在开发一个Windows移动设备,它看起来像Json.net太大了。尝试调试时出现错误,我发现整个设备的内存已耗尽。

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

无论如何谢谢你的建议。

堆栈溢出的人很棒!

+1

更好地评论答案,而不是使用答案点作为讨论板。 – jfar 2009-09-23 17:59:32