c# - 反序列化期间的 JSON.Net Ignore Property

我的类(class)设置如下:

public class Foo
{
    public string string1 { get; set; }
    public string string2 { get; set; }
    public string string3 { get; set; }
}

我正在使用 Json.Net 反序列化以下 Json 响应:

[
    {
        "number1": 1,
        "number2": 12345678901234567890,
        "number3": 3
    },
    {
        "number1": 9,
        "number2": 12345678901234567890,
        "number3": 8
    }
]

反序列化代码:

string json = @"[
    {
        ""number1"": 1,
        ""number2"": 12345678901234567890,
        ""number3"": 3
    },
    {
        ""number1"": 9,
        ""number2"": 12345678901234567890,
        ""number3"": 8
    }
]"

List<Foo> foos = JsonConvert.DeserializeObject<List<Foo>>(json);

number2 中的值超过了 Int64,但我并不真正关心检索该值。有没有办法将 number2 属性转换为字符串,或者在反序列化期间完全忽略它?

我尝试将 [JsonConverter(typeof(string))] 属性添加到 string2 属性,但收到错误:Error Creating System.String 。我也试过设置 typeof(decimal).

我也尝试过使用 [JsonIgnore] 但这不起作用。

最佳答案

您可以使用 JsonSerializerSettings 对象的 MissingMemberHandling 属性。

示例用法:

var jsonSerializerSettings = new JsonSerializerSettings();
jsonSerializerSettings.MissingMemberHandling = MissingMemberHandling.Ignore;

JsonConvert.DeserializeObject<YourClass>(jsonResponse, jsonSerializerSettings);

更多信息 here .

https://stackoverflow.com/questions/12754463/

相关文章:

json - 如何解析 JSON 文件?

json - 将 JSON 与 LogStash 一起使用

json - 浏览器 JSON 插件

javascript - 如何在不解析的情况下在javascript中同步包含JSON数据?

php - 无法安装 Composer - 缺少 json 扩展名

java - 在spring-mvc中将json解析为java对象

c# - 将 .NET Dictionary 序列化为 JSON 键

python - 无法解析 JSON 文件中的 TAB

c# - 使 ASP.NET WCF 将字典转换为 JSON,省略 "Key"和 "Value"标记

json - Jackson:有没有办法将 POJO 直接序列化为 treemodel?