我尝试了这段源代码(基于NewtonSoft的JSON NuGet库(,用于将JSON文件读取为JSON对象:
string str_File_Content = File.ReadAllText(openFileDialog1.FileName);
Rootobject existing_root = JsonConvert.DeserializeObject<Rootobject>(str_File_Content);
它几乎成功了:所有JSON对象都加载到existing_root
中,在数组的情况下,对象的数量似乎是正确的。
但是:属性的值似乎没有填写,正如您在这里看到的:
JSON文件摘录:
{
"project": {
"common.DESCRIPTION": "Some information",
观察窗口中的existing_root
摘录:
Expected :existing_root.project.commonDESCRIPTION : Some information
Real result :existing_root.project.commonDESCRIPTION : null
为了使JsonConvert.DeserializeObject()
不仅处理结构,而且处理值,我能做些什么?
您的json属性名称包含"quot;符号,它对C#属性名称无效,因此您可以指定在使用JsonPropertyAttribute
:进行(反(序列化期间使用的正确名称
public class Project
{
[JsonProperty("common.DESCRIPTION")]
public string commonDESCRIPTION { get; set; }
}