用php将数组转换为json

时间:2013-11-28 08:26:16

标签: php arrays json

我会将数组的形状更改为json,但解析数据有困难,我有一个数组:

Array ( [id] => 1
        [fisrt_name] => raul
        [last_name] => gonzales
        [tgl_booking_start] => 2013-11-04 00:00:00 
        [tgl_booking_finish] => 2013-11-30 00:00:00 
      ),
      ( [id] => 2
        [fisrt_name] => chirtiano
        [last_name] => ronaldo
        [tgl_booking_start] => 2013-11-04 00:00:00 
        [tgl_booking_finish] => 2013-11-30 00:00:00 
      ) 

我想将它改成像这样的json形式,我该如何启动代码?

   [{
   "id":1,
   "title":"raul gonzales",
   "start":"2013-11-04",
   "end":"2013-11-30"
   },
   {
   "id":2,
   "title":"chirtiano ronaldo",
   "start":"2013-11-04",
   "end":"2013-11-30"
  }]

感谢您的回答

7 个答案:

答案 0 :(得分:3)

使用json_enconde($ array)将数组转换为json,使用json_decode($ json)将json转换为数组。

在javascript中访问json元素的索引示例:  $ JSON [ '标题']

答案 1 :(得分:3)

Sample Link

 <?php
        $array = array ( 
              array( 'id' => '1',
                'fisrt_name' => 'raul',
                'last_name' => 'gonzales',
                'tgl_booking_start' => '2013-11-04 00:00:00' ,
                'tgl_booking_finish' => '2013-11-30 00:00:00' ,
              ),
              array( 'id' => '2',
                'fisrt_name' => 'chirtiano',
                'last_name' => 'ronaldo',
                'tgl_booking_start' => '2013-11-04 00:00:00', 
                'tgl_booking_finish' => '2013-11-30 00:00:00', 
              ) 
          );

        $new_arr = array();

        foreach($array as $arr){
                $process_array = array();
                $process_array['id'] = $arr['id'];
                $process_array['title'] = $arr['fisrt_name'].' '.$arr['last_name'];
                $process_array['start'] = $arr['tgl_booking_start'];
                $process_array['end'] =  $arr['tgl_booking_finish'];

                array_push($new_arr,$process_array);

         }

         echo json_encode($new_arr);

    ?>

输出

[{
"id":"1",
"title":"raul gonzales",
"start":"2013-11-04 00:00:00",
"end":"2013-11-30 00:00:00"
},
{
"id":"2",
"title":"chirtiano ronaldo",
"start":"2013-11-04 00:00:00",
"end":"2013-11-30 00:00:00"
}]

答案 2 :(得分:2)

使用json_encode()请参阅文档以了解用法。

http://us1.php.net/manual/en/function.json-encode.php

答案 3 :(得分:0)

尝试以下功能。

json_encode($array)

答案 4 :(得分:0)

您可以使用json_decode

echo json_encode($array);

答案 5 :(得分:0)

如果你想要一个比内置json_encode函数更强大的解决方案(主要用于对象序列化),试试JmsSerializer库(在Symfony2项目中经常使用):http://jmsyst.com/libs/serializer

答案 6 :(得分:0)

考虑使用stripslashesjson_encode函数来避免意外问题。

echo stripslashes(json_encode($array));