使用重复键创建json数据

时间:2011-11-24 16:08:26

标签: php json

我想用PHP构建一个json对象。 json对象需要像这样(用于创建谷歌折线图):

{"cols":[{"id":"bingo","label":"bingo","type":"string"},{"id":"value","label":"value","type":"number"}],"rows":[{"c":[{"v":"date1"},{"v":151}]},{"c":[{"v":"date2"},{"v":102}]},{"c":[{"v":"date3"},{"v":52}]},{"c":[{"v":"date4"},{"v":32}]},{"c":[{"v":"date5"},{"v":7}]},{"c":[{"v":"date5"},{"v":7}]},{"c":[{"v":"date5"},{"v":7}]}]}

我在创建以下部分时遇到问题:

{"c":[{"v":"date3"},{"v":52}]},{"c":[{"v":"date4"},{"v":32}]},{"c":[{"v":"date5"},{"v":7}]},{"c":[{"v":"date5"},{"v":7}]},{"c":[{"v":"date5"},{"v":7}]}

如何使用PHP创建它?

2 个答案:

答案 0 :(得分:1)

PHP附带JSON extension。您需要弄清楚的唯一事情是如何在PHP中创建数据。 JSON中的[]是一个数组,{}是一个字典。对于提到的部分,你需要这样的东西:

$foo = array(
   array(
      'c' => array(
         array('v' => 'date3'),
         array('v' => 52)
      )
   ),
   array(
      'c' => array(
         array('v' => 'date4'),
         array('v' => 32)
      )
   ),
   // and so on...
);

答案 1 :(得分:1)

要在PHP中重新使用:

$data = array (
  'cols' => 
  array (
    array (
      'id' => 'bingo',
      'label' => 'bingo',
      'type' => 'string',
    ),
    array (
      'id' => 'value',
      'label' => 'value',
      'type' => 'number',
    ),
  ),
  'rows' => 
  array (
    array (
      'c' => 
      array (
        array (
          'v' => 'date1',
        ),
        array (
          'v' => 151,
        ),
      ),
    ),
    array (
      'c' => 
      array (
        array (
          'v' => 'date2',
        ),
        array (
          'v' => 102,
        ),
      ),
    ),
    array (
      'c' => 
      array (
        array (
          'v' => 'date3',
        ),
        array (
          'v' => 52,
        ),
      ),
    ),
    array (
      'c' => 
      array (
        array (
          'v' => 'date4',
        ),
        array (
          'v' => 32,
        ),
      ),
    ),
    array (
      'c' => 
      array (
        array (
          'v' => 'date5',
        ),
        array (
          'v' => 7,
        ),
      ),
    ),
    array (
      'c' => 
      array (
        array (
          'v' => 'date5',
        ),
        array (
          'v' => 7,
        ),
      ),
    ),
    array (
      'c' => 
      array (
        array (
          'v' => 'date5',
        ),
        array (
          'v' => 7,
        ),
      ),
    ),
  ),
);

现在,如果要以JSON格式打印,请使用:

echo json_encode ($data);
相关问题