当使用JSON时。Net在ASP。Net Core 2.2在序列化为JSON时,当属性值为null时,我能够忽略该属性:
[JsonProperty(NullValueHandling = NullValueHandling.Ignore)]
public DateTime? Created { get; set; }
但是当使用JSON(System.Text.Json)中内置的新ASP.NetCore 3.0时,如果属性的值为null,我找不到忽略该属性的等效属性。
我只能找到杰索尼诺。
我错过什么了吗?
如果您希望在 JSON 序列化期间对忽略 null 值进行属性级控制,对于 Net Core 3.1,则必须编写自定义转换器。Newtonsoft.Json 迁移文档中描述了一些示例。
对于使用Newtonsoft.Json.声明的功能来说,这是一个很大的麻烦。您可以通过在Startup.ConfigureServices()中指定尽可能多的内容来指定使用Newtonsoft.Json。
services.AddControllers()
.AddNewtonsoftJson();
如文档所述,您需要添加Microsoft.AspNetCore.Mvc。NewtonsoftJson包。
我在看.NETCore3.1,它应该忽略空值
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.IgnoreNullValues = true;
});
在. NET 5及更高版本中,将JsonSerializerOptions.DefaultIgnoreCondition
设置为JsonIgnoreCondition.WhenWritingNull
:
services.AddControllers().AddJsonOptions(options =>
{
options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull;
});
请注意,上述内容不是每个属性/属性,尽管有一个属性可能会有所帮助 JsonIgnoreAttribute
。
另一种解决问题的方法可能是JsonConverterAttribute,这里有关于如何编写自己的转换器的信息
此问题已在 .Net 5 上修复
[JsonIgnore(Condition = JsonIgnoreCondition.WhenWritingNull)]
请参阅以下更新
https://github.com/dotnet/runtime/issues/41313
https://github.com/dotnet/runtime/issues/30687
我试图只返回有值的属性,但也会返回空值。 我知道有一个注解可以做到这一点(),但是我需要在每个实体类中使用这些。 所以,我的问题是:有没有办法通过spring配置全局配置?(最好避免使用XML) 编辑:似乎这个问题已经被认为是重复的,但我不这么认为。这里真正的问题是如何通过Spring config配置它,这是我在其他问题中找不到的。
我不知道为什么,但dom4j不加载xmlns属性,如: xmlns=”http://webservices.example.com/servicesplatform/command/1.0.0“xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance" 其他属性通常会加载,但会被忽略。我使用属性迭代器检查所有元素的所有属性。 下面是我如何读取此xml
问题内容: HTML / CSS中是否有任何内容可以告诉浏览器完全忽略空格? 如此多次,当您想要将两个图像彼此并排放置时-拼命尝试使HTML可读,但是浏览器在它们之间放置了一个空格。 因此,而不是像这样: 你最终得到这个 真是太恐怖了! 问题答案: 哦,您只需一行CSS就可以轻松实现: 劣势,你问?尚无 浏览器实现此 极其有用的功能(通常考虑内联块)。 我有时会做些什么,尽管黑夜很丑,但还是要使用
问题内容: 在这个例子中 如果JSON对象缺少属性“ age”, 有人说它不能反序列化。在反序列化期间是否有 注释 可以忽略丢失的字段? 谢谢 问题答案: 我想你想要的是 这就是Jackson 1.x的方式。我认为2.x中有一种新方法。就像是 这些将告诉Jackson仅序列化不为null的值,并且在反序列化缺少的值时不会抱怨。我认为它将只是将其设置为Java默认值。
我正在用java中的jackson构建一个json体。它会像下面这样 基于不同的 REST URI,json 主体必须忽略某些字段或元素。如何使用杰克逊忽略上述 json 正文中的“学生”部分?当我忽略它时,我应该只能得到 但我得到它如下,这是不正确的- 我有两个带有getters和setters的类,一个作为主语,另一个作为学生。我尝试使用@JsonIgnore,但是它忽略了所有的URI,这是我
有什么办法能做到这一点吗? 谢谢!