C# 如何使用动态子对象反序列化json文件?

C# 如何使用动态子对象反序列化json文件?,c#,json,xamarin,xamarin.forms,json.net,C#,Json,Xamarin,Xamarin.forms,Json.net,我有JsonFile可以从中获取数据,并且该文件可以像嵌套对象一样随时更改,因此我需要为文件中的每个更改提供解决方案 { "Result": [{ "ProductIid": 883, "Mark": "KCD", "Position": null, "ChildProduct": [{ "ProductIid": 8831, "Mark": "KCE", "Position": "AU20001", }]

我有JsonFile可以从中获取数据,并且该文件可以像嵌套对象一样随时更改,因此我需要为文件中的每个更改提供解决方案

{
"Result": [{
    "ProductIid": 883,
    "Mark": "KCD",
    "Position": null,
    "ChildProduct": [{
        "ProductIid": 8831,
        "Mark": "KCE",
        "Position": "AU20001",
    }]
},
{
  "ProductIid": 999,
    "Mark": "POM",
    "Position": null
},
变化可以这样看,例如:

{
"Result": [{
    "ProductIid": 883,
    "Mark": "KCD",
    "Position": null,
    "ChildProduct": [{
        "ProductIid": 8831,
        "Mark": "KCE",
        "Position": "AU20001",
        "ChildProduct": [{
              "ProductIid": 8832,
              "Mark": "KCF",
              "Position": "20001",
            }]
    }]
},
{
  "ProductIid": 999,
    "Mark": "POM",
    "Position": null
},
我已经可以像这样从文件中获取数据,但其静态解决方案是:

var responseData = streamReader.ReadToEnd();  
rootObject=JsonConvert.DeserializeObject<RootObject(responseData);

JObject testData = JObject.Parse(responseData);
JArray child = (JArray)testData["Result"][0]["Child"];
var responseData=streamReader.ReadToEnd();

rootObject=JsonConvert.DeserializeObject基于您提供的JSON,这看起来非常简单,例如

public class Product
{
    public long ProductIid {get;set;}
    public string Mark {get;set;}
    public string Position {get;set;}
    public Product[] ChildProduct {get;set;}
}

var data = JsonConvert.DeserializeObject<Product[]>(responseData);
公共类产品
{
公共长ProductIid{get;set;}
公共字符串标记{get;set;}
公共字符串位置{get;set;}
公共产品[]子产品{get;set;}
}
var data=JsonConvert.DeserializeObject(responseData);

基于您提供的JSON,这似乎非常简单,例如

public class Product
{
    public long ProductIid {get;set;}
    public string Mark {get;set;}
    public string Position {get;set;}
    public Product[] ChildProduct {get;set;}
}

var data = JsonConvert.DeserializeObject<Product[]>(responseData);
公共类产品
{
公共长ProductIid{get;set;}
公共字符串标记{get;set;}
公共字符串位置{get;set;}
公共产品[]子产品{get;set;}
}
var data=JsonConvert.DeserializeObject(responseData);

它是真正动态的还是只是更广泛规范的子集?JSON是完全不同的结构还是定义良好的一组可能的结构?我认为这种情况并不重要,然而,我需要展示所有数据它非常重要并且与一个简单的解决方案相关,所以我认为它们是一个更广泛规范的子集它是真正动态的还是只是一个更广泛规范的子集?JSON是否有完全不同的结构或者它是一些定义良好的可能结构集?我认为在这种情况下并不重要,然而,我需要显示所有数据,这对于一个简单的解决方案来说非常重要和相关,所以我认为它们是更广泛规范的子集