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
下面是经过解析以验证 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