知道,在JSON格式中,Object和Array结构可以分别包含名称/值和有序值集合,并且值可以是object / array / string / number / true / false / null;说在数组(或对象)中值的类型可以变化是否正确?
这意味着我可以拥有例如这个数组:
[String,Number,Array,Array,Object]或者它必须是这样的[String,String,...]或[Array,Array,...](整个数组的值类型相同)< / p>
对象结构的相同问题。 (关于对键名/值的值部分)
答案 0 :(得分:1)
是的,您可以将任何类型的值与另一个对象的任何属性相关联,并且可以将任何类型的值添加到数组中。
例如,这是完全有效的JSON:
{
"key1": 1,
"key2": "Two",
"key3": ["Three", 4, {"five": "six"}, ["seven"]]
}
...可以用来定义一个值,如下所示:
答案 1 :(得分:1)
在Javascript中,数组中元素的类型可以变化。例如
var a = ["hello", 12345, {key : "value"}, true];
这是有效的JavaScript。但是,在数组中包含多个类型是不好的做法,因为您必须知道访问它们的预期元素的顺序。例如你必须知道第一个元素是一个字符串。
最好将上面的数组表示为具有命名属性的对象:
var o = {
aString : "hello",
aNumber : 12345,
aSubobject : {
key : "value"
},
aBool : true
}
答案 2 :(得分:0)
根据定义,数组应仅包含相同类型的元素。 但是,该对象可能包含不同的元素类型。这是JSON中的基本假设。
答案 3 :(得分:0)
值可以是以下任何类型:Boolean,JSONArray,JSONObject,Number和String,或者JSONObject.NULL对象。