Json:强制将只有一个元素的数组转换为正确的JS对象

时间:2014-03-19 14:33:52

标签: javascript php json

我使用带有数字键的PHP数组,但它们不会从0变为n,但可以随机选择(它是用于实现计划事件的脚本,这些事件占用了计划中的某些特定位置。它们必须与正确的地方,因为在同一个地方可以有多个;但有些地方也可以是空的)。这样的数组被转换为JS对象(地图),没关系。但是,如果一个数组偶然只包含一个键为“0”的项,它就会被转换为JS数组,因为它实际上是一个正确的数组。因此结果并不一致。

$array1 = [2 => "something", 3 => "something"];
becomes:
array1 = { 2: "something", 3 : "something" }; (GOOD)

$array2 = [0 => "something"];
becomes:
array2 = ["something"]; (BAD)

如何强制进行一致转换?

一个想法是为每个数组添加一个虚拟键以使其关联:

$array3 = [0 => "something", "forceMap" => true];

有更好的主意吗?

1 个答案:

答案 0 :(得分:2)

根据这个站点:http://de2.php.net/json_encode你只需要使用带有json_encode()函数的JSON_FORCE_OBJECT参数来执行此操作:

$json = json_encode($yourObject, JSON_FORCE_OBJECT)