【发布时间】:2019-03-14 14:27:09
【问题描述】:
我不断收到以下错误:
对象引用未设置为对象的实例
这是我在 C:\part_param.json 文件中的 Json 字符串
{
"part_parameters" : {
"bar_diameter" : 300.4,
"core_height" : 132,
"roughing_offset" : 0.3
}
}
我使用的代码如下:
public class PLMpartParameter
{
public class Parameters
{
public float bar_diameter;
public float core_height;
public float roughing_offset;
public Parameters(float barD, float coreH, float roughingO)
{
bar_diameter = barD;
core_height = coreH;
roughing_offset = roughingO;
}
}
public Parameters parameters;
public PLMpartParameter(Parameters param)
{
parameters = param;
}
}
public static void LoadJson()
{
using (System.IO.StreamReader r = new System.IO.StreamReader(@"C:\part_param.json"))
{
string json = r.ReadToEnd();
_logger.Info(string.Format("Read entire file complete. File Values: {0}", json));
try
{
PLMpartParameter part = Newtonsoft.Json.JsonConvert.DeserializeObject<PLMpartParameter>(json);
}
catch (Exception e)
{
_logger.Info(string.Format("Read Json failed {0}", e.Message));
}
}
我在这里缺少什么?
【问题讨论】:
-
抛出异常的行可能是?你确定 _logger 设置了吗?
-
哪一行报错?
-
您有一个名为
parameters的字段,但您的 JSON 有一个名为part_parameters的属性。 (我个人强烈建议您将Parameters类设为顶级,并使用属性而不是公共字段,使用[JsonProperty]在 JSON 文件中指定名称,以便您可以使代码符合 .NET 命名约定.) -
@JonSkeet 在这里,我删除了我的答案。 ;)
标签: c# json json.net json-deserialization