json_encode返回无效的json格式(对我来说)

时间:2014-01-31 23:07:13

标签: php json

<?php
    $a = 'aa,ss';
    $b = explode(',', $a);
    $c = json_encode($b);
    echo $c;

此代码返回:

["aa","ss"]

我需要:

{"0":"aa","1":"ss"}

3 个答案:

答案 0 :(得分:4)

JSON有两种同样有效的格式:

  • 对象
  • 阵列

你拥有的是一个阵列。您认为“有效”的是一个对象。

要使用PHP的json_encode()输出对象,您可以这样做:

json_encode($b, JSON_FORCE_OBJECT);

你会得到你想要的东西。

答案 1 :(得分:2)

在json_encode上使用 JSON_FORCE_OBJECT 。非关联数组输出为对象:

$a = 'aa,ss';
$b = explode(',', $a);
$c = json_encode($b, JSON_FORCE_OBJECT);
echo $c;

答案 2 :(得分:1)

$a = 'aa,ss';
$b = explode(',', $a);

$object = new stdClass();
foreach ($b as $key => $value)
{
    $object->$key = $value;
}
$c = json_encode($object);
echo $c;

将输出您想要的内容