如何创建 JSON 对象

2022-08-30 07:06:15

我正在尝试从PHP数组中创建一个JSON对象。数组如下所示:

$post_data = array('item_type_id' => $item_type,
    'string_key' => $string_key,
    'string_value' => $string_value,
    'string_extra' => $string_extra,
    'is_public' => $public,
    'is_public_for_contacts' => $public_contacts);

用于对 JSON 进行编码的代码如下所示:

$post_data = json_encode($post_data);

JSON 文件最后应该如下所示:

{
    "item": {
        "is_public_for_contacts": false,
        "string_extra": "100000583627394",
        "string_value": "value",
        "string_key": "key",
        "is_public": true,
        "item_type_id": 4,
        "numeric_extra": 0
    }
}

如何将创建的JSON代码封装在“item”中:{ JSON CODE HERE }。


答案 1

通常,您会执行如下操作:

$post_data = json_encode(array('item' => $post_data));

但是,由于您似乎希望输出带有“”,因此最好确保通过传递常量来强制json_encode()编码为对象。{}JSON_FORCE_OBJECT

$post_data = json_encode(array('item' => $post_data), JSON_FORCE_OBJECT);

"{}“括号指定一个对象,”“用于根据 JSON 规范的数组。[]


答案 2

虽然这里发布的其他答案有效,但我发现以下方法更自然:

$obj = (object) [
    'aString' => 'some string',
    'anArray' => [ 1, 2, 3 ]
];

echo json_encode($obj);

推荐