小编Tec*_*eek的帖子

Newtonsoft.Json - 从JSON获取反序列化对象的相应行号,以便更好地处理错误

我的应用程序接受来自我反序列化和处理的客户端的长JSON模板.我想向客户提供更好的错误处理信息,其中包含JSON文本中无效对象的lineNumber.请注意,这是针对后处理中发生的错误而不是针对反序列化期间发生的错误,因为这已经由Newtonsoft处理.

作为一个例子,我有以下JSON及其相应的.Net类型

{
    "Version": "1.0.0.0",                        
    "MyComplexObject": [
    {
        "Prop1": "Val1",
        "Prop2": "Val2",
        "Prop3": 1
    }
    ]
}

public class MyComplexObject
{
    [JsonProperty]
    public string Prop1 { get; set; }

    [JsonProperty]
    public string Prop2 { get; set; }

    [JsonProperty]
    public int Prop3 { get; set; }

    **public int LineNumber;
    public int LinePosition;**
}

public class RootObject
{
    [JsonProperty]
    public string Version { get; set; }

    [JsonProperty]
    public List<MyComplexObject> MyComplexObject { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我希望在反序列化时填充LineNumber和LinePosition属性,以便以后可以使用它.我目前正在使用以下代码反序列化JSON

JsonConvert.DeserializeObject<RootObject>(value: rawJson,settings: mysettings);
Run Code Online (Sandbox Code Playgroud)

感谢任何回复

c# json.net

5
推荐指数
1
解决办法
1324
查看次数

标签 统计

c# ×1

json.net ×1