首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何创建JSON对象

如何创建JSON对象
EN

Stack Overflow用户
提问于 2010-07-19 21:18:58
回答 5查看 226.9K关注 0票数 125

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

代码语言:javascript
复制
$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的代码如下所示:

代码语言:javascript
复制
$post_data = json_encode($post_data);

JSON文件最终应该是这样的:

代码语言:javascript
复制
{
    "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 }。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-07-19 21:21:05

通常,您会这样做:

代码语言:javascript
复制
$post_data = json_encode(array('item' => $post_data));

但是,看起来您希望输出为"{}",您最好确保通过传递JSON_FORCE_OBJECT常量强制json_encode()编码为object。

代码语言:javascript
复制
$post_data = json_encode(array('item' => $post_data), JSON_FORCE_OBJECT);

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

票数 178
EN

Stack Overflow用户

发布于 2016-08-20 18:37:31

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

代码语言:javascript
复制
$obj = (object) [
    'aString' => 'some string',
    'anArray' => [ 1, 2, 3 ]
];

echo json_encode($obj);
票数 77
EN

Stack Overflow用户

发布于 2014-08-21 01:20:03

你只需要在你的php数组中再加一层:

代码语言:javascript
复制
$post_data = array(
  'item' => 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
  )
);

echo json_encode($post_data);
票数 36
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3281354

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档