如何创建特定的JSON字符串?

时间:2014-08-07 12:06:17

标签: php json

我想用PHP创建这个JSON字符串:

[{name:'20140722.1304',data:[[0, 0.224],[0, 0.228]] }, {name:'20140729.1149',data:[[1, 0.224],[1,0.228]] }]

我目前的尝试:

$jsonArray = array(
    'name' => '20140722.1304'
   ,'data' => array('0' => '0.024', '1'=> '0.028')
);

$jsonValue = json_encode($jsonArray);
echo $jsonValue;

但是这段代码的输出如下:

{"name":"20140722.1304","data":["0.024","0.028"]}

我哪里出错了?我需要在代码中更改什么才能获得预期的输出?

3 个答案:

答案 0 :(得分:0)

我终于让你在评论中告诉我们你想要什么;请在将来与您保持联系。您提供的预期输出与实际输出的不同之处在很多方面,以至于无法确定您实际认为问题是什么,但是:

  

我希望输出为{name:'20140722.1304',数据:[[0,0.224],[0,0.228]]}

此时,我能看到的唯一区别是您的data是预期输出中的嵌套数组,而不是实际输出。

这与JSON无关。您只是没有正确构建输入数组。

尝试使用json编码:

$jsonArray = array(
    'name' => '20140722.1304'
   ,'data' => array(array(0, 0.024), array(0, 0.028))
);

答案 1 :(得分:-1)

<?php
for($i=0;$i<2;$i++)
{
$jsonArray[] = array(
        'name' => '20140722.1304'
       ,'data' => array('0' => '0.024', '1'=> '0.028')
  );
  }
  //$jsonValue = json_encode($jsonArray);
  $jsonValue = json_encode($jsonArray,true);
  echo$jsonValue;
?>

答案 2 :(得分:-2)

试试这个

    $jsonArray = array(
        'name' => '20140722.1304'
       ,'data' => array('0' => '0.024', '1'=> '0.028')
  );
  $out = array_values($jsonArray);

  echo json_encode($out);

输出:

["20140722.1304",["0.024","0.028"]]

编辑:

 $array = array(
  2 => array("name" => '20140722.1304'),
  4 => array("'data" => array('0' => '0.024', '1'=> '0.028')));
 $out = array_values($array);
 echo json_encode($out);

输出:

[{"name":"20140722.1304"},{"'data":["0.024","0.028"]}]