2014-07-15 53 views
0

我有一个php对象,我想将其转换为以下json格式。将php对象转换为json

所有data值是通过在格式php对象对象:

Array ([0] => stdClass Object ([id] => 2 
           [s1] => 1485 
           [name] => 1485 
           [credit] => '' 
           [caption] => '' 
           ) 
    ) 

child下试图组credit, caption等。此外,我无法获得date格式的json格式之后的[

{ 
    "mydata": 
    { 
     "name":Name, 
     "type":"default", 
     "date": [ 
     { 
       "s1":"1485", 
       "name":"1485", 
       "child": 
       { 
        "credit":"", 
        "caption":"" 
       } 
      }] 
    } 
} 

目前,我的代码如下所示:

foreach ($hits as $hit) { 
    $data->mydata->date->s1 = $hit->s1; 
    $data->mydata->date->name = $hit->name; 
    $data->mydata->date->credit = $hit->credit; 
    $data->mydata->date->caption = $hit->caption; 
} 
$a = json_encode($data); 

回答

0

设置$date->mydata->date到一个数组,你会得到[]

为什么不使更多的嵌套结构?

0

你看JSON格式显示的日期是一个数组(括号内是在JavaScript数组符号),所以:

<?php 

$var = array(
    'mydata' => array(
     'name' => 'Name', 
     'type' => 'default', 
     'date' => array(
      array(
       's1' => 1485, 
       'name' => '1485', 
       'child' => array(
        'credit' => '', 
        'caption' => '', 
       ), 
      ), 
     ), 
    ), 
); 

print json_encode($var); 

打印出:

{ 
    "mydata": { 
     "name": "Name", 
     "type": "default", 
     "date": [ 
      { 
       "s1": 1485, 
       "name": "1485", 
       "child": { 
        "credit": "", 
        "caption": "" 
       } 
      } 
     ] 
    } 
} 

无需尝试在PHP中添加stdClass实例或类似的东西。只需构建一个漂亮的清洁数组,JSON编码将在必要时转换为对象属性和数组。