我的类(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/