我正在创建一个将结果作为JSON返回的API.当值为null时,是否应该在结果中包含键,是否存在当前的最佳实践?例如:
{
"title":"Foo Bar",
"author":"Joe Blow",
"isbn":null
}
Run Code Online (Sandbox Code Playgroud)
要么
{
"title":"Foo Bar",
"author":"Joe Blow"
}
Run Code Online (Sandbox Code Playgroud)
由于第二个较小,我倾向于这种风格,但我不确定是否有一个首选的风格.从客户的角度来看,似乎两种风格在功能上都是等同的.各有利弊吗?
我正在设计和开发RESTful API.我采用了一种实用的,面向资源的API方法(面向资源,统一的接口,可寻址性,但没有真正的HATEOAS).但我不确定的一点是如何在对象中处理空值.
我应该在API响应中包含具有空值的字段吗?
例:
{
"fieldA": "AAA",
"fieldB": null
}
Run Code Online (Sandbox Code Playgroud)
或者,如果系统没有这些字段的数据,我是否应该完全忽略这些字段?
例:
{
"fieldA": "AAA"
}
Run Code Online (Sandbox Code Playgroud) 我们正在使用一个 API,并且该 API 提供 xml 字段。我们必须为消费者将 xml 转换为 json。我们需要以 XML 形式显示我们所拥有的内容,并且只显示那些字段。
我看到的都是一般注释
@JsonInclude(NON_EMPTY)
可用于排除空值。我不能使用它,因为我仍然想查看 json 中具有 null 值的空字段
@JsonInclude(NON_ABSENT)
可用于排除空值和“不存在”的值。我无法使用它,因为我仍然想查看 json 中的空字段和空字段。与JsonInclude (NON_NULL)
所以我的问题是,如果我不指定任何这些属性,我可以实现我想要的吗?换句话说,如果我没有指定其中任何一个,杰克逊的行为是显示所有在动态意义上具有空值的字段?我主要关心的是这里的动态响应。对于每个请求,字段可能存在或不存在。我们必须在 json 中显示我们在 XML 中收到的确切内容