嘿那里,
我正在使用Newtonsoft.Json 10.0.3
的nuget包,并且在将JSON文件解析到其他对象时遇到了一些麻烦
项目本身用于将JSON文件转换为具有不同结构的XML文件
在执行代码时(请参阅末尾的代码段),我收到了Cannot perform runtime binding on a null reference
异常,这确实是正确的,因为当悬停动态input.submitter.hierarchies
时,您将看到&#34 ; NULL"
然而......当在观察窗口或即时窗口内检查相同内容时,我得到了正确的JObject
现在的问题是:如何解决这个问题?
JSON文件:
{
"submitter": {
"hierachies": [{
}]
}
}
C#代码:
dynamic input;
using (var reader = new StreamReader(jsonFile))
{
input = JObject.Parse(reader.ReadToEnd(), new JsonLoadSettings() { CommentHandling = CommentHandling.Ignore, LineInfoHandling = LineInfoHandling.Ignore });
}
var obj = new SomeObject();
obj.Field = input.submitter.hierarchies[0].SomeProperty
答案 0 :(得分:3)
您在C#代码中输错了...您的Json文件包含hierachies
,而c#代码将其解码为hierarchies
它必须与我相同。
试试这段代码:
dynamic input;
using (var reader = new StreamReader(jsonFile))
{
input = JObject.Parse(reader.ReadToEnd(), new JsonLoadSettings() { CommentHandling = CommentHandling.Ignore, LineInfoHandling = LineInfoHandling.Ignore });
}
var obj = new SomeObject();
obj.Field = input.submitter.hierachies[0].SomeProperty