相关疑难解决方法(0)

在JSON中表示null

在JSON中返回空值的首选方法是什么?原语是否有不同的偏好?

例如,如果服务器上的对象有一个名为"myCount"且没有值的Integer,那么该值的最正确的JSON将是:

{}
Run Code Online (Sandbox Code Playgroud)

要么

{
    "myCount": null
}
Run Code Online (Sandbox Code Playgroud)

要么

{
    "myCount": 0
}
Run Code Online (Sandbox Code Playgroud)

字符串的相同问题 - 如果我在服务器上有一个空字符串"myString",则是最好的JSON:

{}
Run Code Online (Sandbox Code Playgroud)

要么

{
    "myString": null
}
Run Code Online (Sandbox Code Playgroud)

要么

{
    "myString": ""
}
Run Code Online (Sandbox Code Playgroud)

或者(上帝帮助我)

{
    "myString": "null"
}
Run Code Online (Sandbox Code Playgroud)

我喜欢集合的约定在JSON中表示为空集合http://jtechies.blogspot.nl/2012/07/item-43-return-empty-arrays-or.html

将显示一个空数组:

{
    "myArray": []
}
Run Code Online (Sandbox Code Playgroud)

编辑摘要

"个人偏好"的观点似乎是现实的,但很短暂,因为社区将消耗更多不同的服务/来源.JSON结构的约定将有助于规范化所述服务的消耗和重用.就建立标准而言,我建议采用大多数杰克逊公约,但有一些例外:

  • 对象比基元更受欢迎.
  • 空集合优先于null.
  • 没有值的对象表示为null.
  • 基元返回它们的价值.

如果要返回一个主要为空值的JSON对象,则可能有一个候选者可以重构为多个服务.

{

    "value1": null,

    "value2": null,

    "text1": null,

    "text2": "hello",

    "intValue": 0, //use primitive only if you are absolutely sure the answer is 0

    "myList": [],

    "myEmptyList": null, //NOT BEST PRACTICE - return [] instead …
Run Code Online (Sandbox Code Playgroud)

json jackson gson

365
推荐指数
5
解决办法
44万
查看次数

标签 统计

gson ×1

jackson ×1

json ×1