Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在C中反序列化JSON数据时为Null对象#_C#_Json_Json Deserialization - Fatal编程技术网

C# 在C中反序列化JSON数据时为Null对象#

C# 在C中反序列化JSON数据时为Null对象#,c#,json,json-deserialization,C#,Json,Json Deserialization,我正在尝试将一个大的JSON数据转换为C json有一个根对象,在这个根对象中有20多个数据类型和3个其他对象 我使用Newtonsoft.Json来处理Json反序列化 我的方法1:在RootObject中得到null ClassA 创建了4个类。RootObjectClass和ClassA/B/C/D var root = new RootObjectClass(); root = JsonConvert.DeserializeObject<RootObjectClass>(j

我正在尝试将一个大的JSON数据转换为C

json有一个根对象,在这个根对象中有20多个数据类型和3个其他对象

我使用Newtonsoft.Json来处理Json反序列化


我的方法1:在RootObject中得到null ClassA

创建了4个类。RootObjectClass和ClassA/B/C/D

var root = new RootObjectClass();
root = JsonConvert.DeserializeObject<RootObjectClass>(jsonContent);
A类:

public class ClassA
{
    //20 different data types.
    public ClassB classB { get; set; }
    public ClassC classC { get; set; }
    public ClassD classD { get; set; }
}
B、C、D类:

public class ClassB/C/D
    {
        //10 different data types.
    }

Json数据:示例版本

{
  "classA": {
    "format": "some format",
    "classB": {
      "num": "11",
      "word": "some word"
    },
    "classC": {
      "num1": "1111",
      "word": "some string"
    },
    "classD": {
      "seomString": "some string"
    }
  }
}

JSON中的属性名称都是
objectA
objectB
等等。。。而C#中的属性名是
classA
classB
等。您认为这是如何工作的?您应该反序列化RootObject,然后分配每个嵌套对象independly@Jon他们是同一个名字,就在我写样本的时候,我忘了匹配刚才使用的名字,粘贴到JSON或其中的一部分,这是一个具有代表性的示例,它将为您生成反序列化类。然后使用这些类或将它们与你的类进行比较,找出你的方法有什么问题。所有这些都是为什么你应该在发布之前进行必要的诊断工作,以提供一个完整的方法。
public class ClassB/C/D
    {
        //10 different data types.
    }
{
  "classA": {
    "format": "some format",
    "classB": {
      "num": "11",
      "word": "some word"
    },
    "classC": {
      "num1": "1111",
      "word": "some string"
    },
    "classD": {
      "seomString": "some string"
    }
  }
}