可以在JSON数组/对象中输入的值的类型是什么?

时间:2015-01-19 23:48:00

标签: javascript arrays json

知道,在JSON格式中,Object和Array结构可以分别包含名称/值和有序值集合,并且值可以是object / array / string / number / true / false / null;说在数组(或对象)中值的类型可以变化是否正确?

这意味着我可以拥有例如这个数组:

[String,Number,Array,Array,Object]或者它必须是这样的[String,String,...]或[Array,Array,...](整个数组的值类型相同)< / p>

对象结构的相同问题。 (关于对键名/值的值部分)

4 个答案:

答案 0 :(得分:1)

是的,您可以将任何类型的值与另一个对象的任何属性相关联,并且可以将任何类型的值添加到数组中。

例如,这是完全有效的JSON:

{
 "key1": 1,
 "key2": "Two",
 "key3": ["Three", 4, {"five": "six"}, ["seven"]]
}

...可以用来定义一个值,如下所示:

enter image description here

答案 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对象。