gpt4 book ai didi

c# - 如何从 JsonConvert.DeserializeObject 返回 NULL

转载 作者:行者123 更新时间:2023-11-30 14:48:15 30 4
gpt4 key购买 nike

我有一个类:

public class CustomResponse
{
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Message {get; set; }
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public string Details {get; set; }
}

然后我尝试将 JSON 字符串反序列化为此类:

var settings = new JsonSerializerSettings
{
NullValueHandling.Ignore,
MissingMemberHandling.Ignore,
};
var customResponse = JsonConvert.Deserialize<CustomResponse>(jsonString, settings);

例如我的 JSON 字符串:

{"DocumentId":"123321", "DocumentNumber":"ABC123"}

结果我有一个对象,它的所有属性都是 NULL,但是 customResponse 不是 NULL。我如何得到 NULL 结果?

最佳答案

如果你想避免创建自定义的JsonConverter,你可以使用下面的扩展方法:

public static class Exts
{
public static T OrDefaultWhen<T>(this T obj, Func<T, bool> predicate)
{
return predicate(obj) ? default(T) : obj;
}
}

用法:

var jsonString = @"{
Message: null,
Details: null
}";

var res = JsonConvert.DeserializeObject<CustomResponse>(jsonString)
.OrDefaultWhen(x => x.Details == null && x.Message == null);

关于c# - 如何从 JsonConvert.DeserializeObject 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42274847/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com