PHP - 如何使用

时间:2015-12-30 14:00:51

标签: php json

我必须与一些期望JSON的API通信。 到现在为止我很好,因为我只需要简单的json,所以我只需创建这样的数组:

$data = array (
    "firstName" => "TEXT1",
    "lastName" => "TEXT2",
    "license" => "TEXT3",
    "password" => "TEXT4",
    "username" => "TEXT5"
);

之后只是简单的

$data_string = json_encode($data);

所以最终的JSON看起来像是:

{
    "firstName": "TEXT1",
    "lastName": "TEXT2",
    "license": "TEXT3",
    "password": "TEXT4",
    "username": "TEXT5"
}

但是现在我需要改变一下,我很困惑,我的新JSON应该是这样的:

{
    "contact": {
        "city": "New Yourk",
        "email": "my@mail.com",
        "phone": "777888999",
        "postCode": "07101",
        "street": "Street N. 12"
    },
    "enabled": true,
    "firstName": "Robert",
    "lastName": "Exer",
    "username": "login@login.com",
    "license": "text",
    "password": "text"
}

正如您所看到的,基本上只添加了contact部分。我在考虑如何做到这一点,但只是认为我发现有点像将数组插入到现有的$ data数组然后json_encode,但这不会在开始时给我contract:

当然有可能做一些其他的方式,比如创建一个json然后另一个并且很难​​连接字符串等等。但我相信必须有更好的方法来做这样的事情。

我建议任何建议:)

2 个答案:

答案 0 :(得分:4)

只需将数组放入contact

的值
$data = array(
    'contact' => array(
        'city' => 'New York',
        'email' => 'my@mail.com',
        //...
    ),
    'enabled' => true,
    'firstName' => 'Robert',
    'lastName' => 'Exer',
    //...
);

$data_string = json_encode($data);

答案 1 :(得分:4)

数组可以包含另一个数组,该数组将被编码为前一个对象中的单独对象:

$data = array (
    "contact" => array(
        "city" => "New Yourk",
        "email" => "my@mail.com",
        "phone" => "777888999",
        "postCode" => "07101",
        "street" => "Street N. 12"
    ),
    "enabled": true,
    .. etc
);