作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个类:
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/
我是一名优秀的程序员,十分优秀!