将php对象转换为json

时间:2014-07-15 19:16:03

标签: php arrays json object

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

所有data值都是php对象的对象,格式为:

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

我正在尝试将credit, caption等分组在child下。此外,我无法以[格式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);

2 个答案:

答案 0 :(得分:0)

$date->mydata->date设置为数组,您将获得[]

为什么不制作更多嵌套结构?

答案 1 :(得分: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编码将在必要时转换为对象属性和数组。