繁体   English   中英

JSON字符串到对象数组C#

[英]Json string to object array c#

我的测试json如下。

 string json = "[{Name:'John Simith',Age:35},{Name:'Pablo Perez',Age:34}]"; 

json可以具有任何键值,因此我没有一个类可以反序列化。.我可以将其反序列化为IEnumerable,如下所示

IEnumerable<dynamic> data = JsonConvert.DeserializeObject<IEnumerable<dynamic>>(json);

我需要将其转换为2D对象数组:object [,]如下。

[
['John Simith',35],['Pablo Perez',34]
]

真诚的感谢您的帮助。 谢谢

如果没有将其反序列化的C#类,则最好的办法是使用JSON.NET提供的动态LINQ对象,即JObjectJArray等。 这使您可以动态查询结构,读取类型值等,而不必与C#的类型系统抗争:

http://www.newtonsoft.com/json/help/html/ParsingLINQtoJSON.htm

遍历JSON树并从那些对象转换为object[,]会容易得多。

您可以从dynamic更改为IDictionary<string, object> ,以便能够枚举未知键。 然后,LINQ表达式可以将其转换为数组,如下所示:

var json = "[{Name:'John Simith',Age:35},{Name:'Pablo Perez',Age:34}]";
var data = JsonConvert.DeserializeObject<IEnumerable<IDictionary<string, object>>>(json);

var array = data.Select(d => d.Values.ToArray()).ToArray();

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM