thinkingbullet 发表于 2013-7-3 15:45:10

很诡异呀,相同类型的数组编码后却是不同类型的json


$a = array (0 =>   array (    'name' => 0,    'value' => 0.62,),1 =>   array (    'name' => 1,    'value' => 1.23,),2 =>   array (    'name' => 2,    'value' => 0.35,),3 =>   array (    'name' => 3,    'value' => 0.8,),4 =>   array (    'name' => 4,    'value' => 0.35,),5 =>   array (    'name' => 5,    'value' => 1.37,));$b = array (0 =>
array (
    'name' => 0,
    'value' => 1.15,
),
1 =>
array (
    'name' => 1,
    'value' => 1.16,
),
2 =>
array (
    'name' => 2,
    'value' => 1.03,
),
3 =>
array (
    'name' => 3,
    'value' => 1.72,
),
4 =>
array (
    'name' => 4,
    'value' => 1.31,
),
6 =>
array (
    'name' => 6,
    'value' => 0.93,
));

echo json_encode($a);
echo '<br><br>';
echo json_encode($b);
明显发现两个json有很大的不同,知道原因的还请说一下.

thinkingbullet 发表于 2013-7-3 15:46:28

百撕不得骑姐

zhouli520 发表于 2013-7-3 16:07:57

序号问题,数组B你的下标把6改成5就可以了

thinkingbullet 发表于 2013-7-3 16:08:08

第二个数组比第一个数组少了一个索引5,所以编码后的json不同,可以用array_value重新排列一下,这样生成的json就是一样的了.谢谢罪恶和seven的提醒和帮助.可以结贴了.

zhouli520 发表于 2013-7-3 16:17:10

一个是作为array输出一个是作为object输出的区别罢了 php.net有例子解释的

mark35 发表于 2013-7-3 17:12:50

与下标有关,以下是我总结出来的:


// json_encode() JSON 输出规律: 从0开始的‘顺序’数字key结果前台解析为数组;从0开始不连续数字key或从非零开始的无论连续数字key或者字符key则前台解析为标准对象
$t = array(
       1 => array('name'=>'bb'),
       2 => array('name'=> 'bc')
);
echo json_encode($t);        // 输出 {"1":{"name":"bb"},"2":{"name":"bc"}}

$t = array(
       0 => array('name'=>'bb'),
       2 => array('name'=> 'bc')
);
echo json_encode($t); // {"0":{"name":"bb"},"2":{"name":"bc"}}

$t = array(
       0 => array('name'=>'bb'),
       1 => array('name'=> 'bc')
);
echo json_encode($t); // [{"name":"bb"},{"name":"bc"}]

$t = array(
       '0' => array('name'=>'bb'),
       '1' => array('name'=> 'bc')
);
echo json_encode($t);        // [{"name":"bb"},{"name":"bc"}]

$t = array(
       'A' => array('name'=>'bb'),
       'b' => array('name'=> 'bc')
);
echo json_encode($t);         // {"A":{"name":"bb"},"b":{"name":"bc"}}

group.6an8.com 发表于 2013-7-4 10:36:14

上面的各位大神是正确的哦

thinkingbullet 发表于 2013-7-11 16:16:13

mark35 发表于 2013-7-3 17:12 static/image/common/back.gif
与下标有关,以下是我总结出来的:




谢谢了
页: [1]
查看完整版本: 很诡异呀,相同类型的数组编码后却是不同类型的json