在JSON中,
[]只有每个数组都有数字键,而对象则
{}具有字符串属性。在第二个示例中,如果包含数组键,则必然迫使整个外部结构成为对象。由于包含字符串键,因此两个示例的内部对象都被制成对象a,b,c,d。
如果要
JSON_FORCE_OBJECT在第一个示例中使用该选项,则应返回与第二个示例类似的结构,而外部结构是对象而不是数组。如果未指定您希望将其作为对象,则外部数组中不存在字符串键会导致PHP假定将其编码为JSON中的等效数组结构。
$arrytest = array(array('a'=>1, 'b'=>2),array('c'=>3),array('d'=>4));// Force the outer structure into an object rather than arrayecho json_enpre($arrytest , JSON_FORCE_OBJECT);// {"0":{"a":1,"b":2},"1":{"c":3},"2":{"d":4}}


