Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/fortran/2.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# SerializeObject读取结构,但不读取值_C#_Json_Json.net - Fatal编程技术网

C# SerializeObject读取结构,但不读取值

C# SerializeObject读取结构,但不读取值,c#,json,json.net,C#,Json,Json.net,我尝试了这段源代码(基于NewtonSoft的JSON NuGet库),用于将JSON文件读入JSON对象: string str_File_Content = File.ReadAllText(openFileDialog1.FileName); Rootobject existing_root = JsonConvert.DeserializeObject<Rootobject>(str_File_Content); existing_root监视窗口中的摘录: Expecte

我尝试了这段源代码(基于NewtonSoft的JSON NuGet库),用于将JSON文件读入JSON对象:

string str_File_Content = File.ReadAllText(openFileDialog1.FileName);
Rootobject existing_root = JsonConvert.DeserializeObject<Rootobject>(str_File_Content);
existing_root
监视窗口中的摘录:

Expected    :existing_root.project.commonDESCRIPTION : Some information
Real result :existing_root.project.commonDESCRIPTION : null

如何使
JsonConvert.DeserializeObject()
不仅处理结构,而且处理值?

您的json属性名称包含“.”符号,该符号对于C#属性名称无效,因此您可以指定在(反)序列化过程中使用的正确名称:

公共类项目
{
[JsonProperty(“common.DESCRIPTION”)]
公共字符串commonDESCRIPTION{get;set;}
}

您的json属性名称包含“.”符号,该符号对于C#属性名称无效,因此您可以指定正确的名称,以便在(反)序列化期间使用:

公共类项目
{
[JsonProperty(“common.DESCRIPTION”)]
公共字符串commonDESCRIPTION{get;set;}
}

这确实有效,但显然我的同事在JSON文件的每个属性中都添加了一个点。您知道Web Essentials(我使用了他们的“Paste special,Paste JSON as Class”功能)添加这个
[JsonProperty(“…”)的方法吗
line automatically?@Dominique我个人会研究Json.NET的内部结构,以便在反序列化过程中自动完成。一种方法是实现自定义,或者甚至更好-自定义确实有效,但显然我的同事在Json文件的每个属性中都添加了一个点。你知道Web Essentials的方法吗(我使用了他们的“粘贴特殊,将JSON粘贴为类”功能)来添加这个
[JsonProperty(“…”)
line automatically?@Dominique我个人会研究Json.NET的内部结构,以便在反序列化过程中自动完成。一种方法是实现自定义,或者甚至更好-自定义。很可能存在类型不匹配问题,Json数据无法转换为对象中的类型,在这种情况下,它将保留为空。我需要查看json和
Rootobject
的定义才能确定。@YosefBernal:没有类型不匹配的问题,Stron大师已经给出了正确的答案,但我仍然面临一个额外的问题,正如他在回答中的评论所述。你有什么想法吗?很可能是类型不匹配的问题json数据无法转换为对象中的类型,在这种情况下,它将保留为null。我需要查看json和
Rootobject
的定义才能确定。@YosefBernal:没有类型不匹配,Stron大师已经给出了正确的答案,但我仍然面临一个额外的问题,如中所述对他的回答的评论。你有什么想法吗?
Expected    :existing_root.project.commonDESCRIPTION : Some information
Real result :existing_root.project.commonDESCRIPTION : null