c#如何将Json数据检索到数组中
我发现了可以解析Json数据的不同库,但我没有找到任何关于如何将数据放入C#数组或列表的文档 我得到了这个Json数据: {“001”:{“姓名”:“约翰”,“电话”:[“Mob-98837374”,“Mob-983627”], “002”:{“姓名”:“汤姆”,“电话”:[“暴民-49858857”]} 有人有线索吗?:) 编辑: OP以评论形式发布的有用详细信息,由AnthonyWJones以问题编辑形式重新发布 我使用JSON.NET的代码:c#如何将Json数据检索到数组中,c#,arrays,json,C#,Arrays,Json,我发现了可以解析Json数据的不同库,但我没有找到任何关于如何将数据放入C#数组或列表的文档 我得到了这个Json数据: {“001”:{“姓名”:“约翰”,“电话”:[“Mob-98837374”,“Mob-983627”], “002”:{“姓名”:“汤姆”,“电话”:[“暴民-49858857”]} 有人有线索吗?:) 编辑: OP以评论形式发布的有用详细信息,由AnthonyWJones以问题编辑形式重新发布 我使用JSON.NET的代码: StringBuilder sb = new
StringBuilder sb = new StringBuilder();
List<string> entities = (List<string>)JsonConvert.DeserializeObject(responseFromServer, typeof(List<string>));
foreach (string items in entities) {
sb.Append(items);
}
StringBuilder sb=新建StringBuilder();
列表实体=(列表)JsonConvert.DeserializeObject(responseFromServer,typeof(列表));
foreach(实体中的字符串项){
某人附加(项目);
}
但我在调试时总是出错:
警告1对类型“System.DateTimeOffset”的引用声称它是在“c:\Program>>Files\Microsoft.NET\SDK\CompactFramework\v3.5\WindowsCE\mscorlib.dll”中定义的,但在c:\Div\Json dot NET\Bin\Newtonsoft.Json.dll中找不到它
看看这个:
这里有一些特定于Json.NET的用于序列化和反序列化数组的文档:您将使用它的目的是什么…如果您在客户端使用它,请使用相同的Json数据,因为它的性能非常高,但如果您在服务器端需要它,请搜索转换的替代方法json字符串到数组列表…目前的json结构存在一些问题。它似乎使用“001”和“002”等属性名作为数据。这在Javascript中很好,但在C#中处理起来非常棘手。更好的结构是:-
[ {"ID": "001", "Name":"John", "Phone":["Mob - 98837374","Mob - 98363627"]},
{"ID":"002", "Name":"Tom", "Phone":["Mob - 49858857"]} ]
然后,正如其他人指出的那样,JSON.NET可以更有效地使用。因为我是为windows mobile设备开发的,所以JSON.NET似乎太大了。我在尝试调试时出错,我发现整个设备的内存都被消耗掉了 无论如何,我想我将自己解析Json字符串,因为我知道字符串将得出什么结论 无论如何,谢谢你的建议
堆栈溢出上的人很棒!你看过哪些库?你能展示一下你试图转换为C#数组的尝试吗?你应该将反序列化后的类发布到.My code中,使用JSON.NET:StringBuilder sb=new StringBuilder();List entities=(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“最好对答案进行评论,而不是将答案点用作讨论板。