json 数组为空

json array with null

下面是经过解析以验证 PUT 请求正文的 JSON:

{
    "requestKey": "whatever",
    "shoppingList": []
}

作为测试的一部分,我们看到另一个场景即将到来,这也是一个有效的 JSON:

{
    "requestKey": "whatever",
    "shoppingList": [null]
}

[] 表示空的购物清单。 [null] 是什么意思?

[null][] 有何不同? shoppingList

null 在这种情况下以及在 RFC 7159 中引用意味着 shoppingList 是一个包含一个原始空值的数组。

至少在语义上它应该屈服于(来源示例在 Java):

shoppingList.get(0) -> null 

而空数组应该产生:

shoppingList.get(0) -> IndexOutOfBoundsException

这正是您在 Google 当前版本中看到的行为 Chrome:

let myObj = {
    "requestKey": "whatever",
    "shoppingList": [null]
};
undefined
myObj
{requestKey: 'whatever', shoppingList: Array(1)}requestKey: "whatever"shoppingList: Array(1)0: nulllength: 1[[Prototype]]: Array(0)[[Prototype]]: Object
let myObj = {
    "requestKey": "whatever",
    "shoppingList": []
};
undefined
myObj
{requestKey: 'whatever', shoppingList: Array(0)}requestKey: "whatever"shoppingList: [][[Prototype]]: Object