提取并重建json的键值对

时间:2015-01-29 14:12:30

标签: php json

我目前有一个带有键值对的数组,例如:

Array(
  (int) 250 => 'blue',
  (int) 252 => 'green',
  (int) 289 => 'yellow'
)

这是我调试时获得的格式。

I need it to be formatted as follows:
['key':250,'value':'blue'],
['key':252,'value':'green'],
['key':289,'value':'yellow']

所以基本上我需要它是" key"等于"一个值" &安培; "值" ="值"

然后将此数组序列化为json。

关于如何做到这一点的任何想法?

1 个答案:

答案 0 :(得分:0)

控制器中的

if($this->RequestHandler->responseType() == 'json'){
    $data = array(
       (int) 250 => 'blue',
       (int) 252 => 'green',
       (int) 289 => 'yellow'
     );
    $this->set('data', $data);
    $this->set('_serialize', 'data');
}
您的routers.php中的

Router::parseExtensions('json');

请致电:http://localhost/mycontroller/myaction.json

<强>结果

{"250":"blue","252":"green","289":"yellow"}

$data= array(
   (int) 250 => 'blue',
   (int) 252 => 'green',
   (int) 289 => 'yellow'
 );
 foreach ($data as $key => $value) {
     $data[] = array('key'=> $key,'value'=> $value);
 } 
$this->set('data', $data);
$this->set('_serialize', 'data');

<强>结果

[{"key":250,"value":"blue"},{"key":252,"value":"green"},{"key":289,"value":"yellow"}]