下午好,我在使用 C# 解析 Json 时遇到了问题。图书馆:Newtonsoft
使用标准解析,例如:JSON
{"success":1,"return":2}
C#
class info{
public int success {get;set;}
public int return{get;set;}
}
info result = JsonConvert.DeserializeObject<info>(jsonstring);
在这种情况下,一切都井井有条,没有问题。但是当分支名称未知时,嵌套数组呢?例如:
{
"success":1,
"return":{
"ИМЯ И КОЛ ВО НЕ ИЗВЕСТНО":{
"per1":"auth",
"timestamp_created":1418654530,
"status":0
},
{
"ИМЯ И КОЛ ВО НЕ ИЗВЕСТНО":{
"per1":"auth",
"timestamp_created":1418654530,
"status":0
}
如何组成一堂课?
所以一切都很简单:您需要
Dictionary
提前为未知名称的节点使用字典 ( )。如果您提供了有效的 json,那么给出准确的答案会容易得多。
假设我们有以下 json:
一组反序列化它的类:
用法:
在反序列化的情况下,通过这种方式,名称必须是已知的,因为JSON 解析器会根据您在参数化反序列化器时指定的类对其进行反序列化。但是,不必知道数量,您可以指定一个数量未知的属性,就像任何集合一样。例如,您可以这样做:JSON
C#
您需要使用 LINQ to JSON。这是它的工作原理:
有 3 个主要的解析对象:
JObject
,JArray
,JValue
.官方文档 - https://www.newtonsoft.com/json/help/html/LINQtoJSON.htm
在您的情况下,对于返回(JObject),您需要使用JObject.ChildrenTokens property ,它获取所有子元素。