PhP在[]中返回Json

时间:2017-10-04 12:32:10

标签: php json

嘿我正在尝试使用json_encode以json格式传回数据。

然而它似乎像这样回归:

[{‘county’:’us’,’sector’:’retail’}]

然而,最终用户表示他们希望没有方括号的响应。

我该怎么做?

感谢。

3 个答案:

答案 0 :(得分:1)

取决于您如何生成您编码的值... json_encode有一个您可以使用的选项JSON_FORCE_OBJECT,但我可以看到,这可能不是您想要的,如在我看来,这只会转动"方括号"进入包装器对象。不过,如果您想尝试:

json_encode($value, JSON_FORCE_OBJECT);

编辑:正如其他人所说,似乎json_encode($value[0])可能是你想要的。

答案 1 :(得分:1)

假设您的数组是:

SELECT a.id, a.body, STRING_AGG(tag.title, '|') tags
FROM article a
    LEFT JOIN article_tag x ON a.id = tag.article
    LEFT JOIN tag ON tag.id = x.tag
GROUP BY a.id

然后返回一个json_encoded数组,如下所示:

q.id

但是,如果包含数据的数组是“嵌套”的,那么:

$data = [
    'country' => 'us',
    'sector' => 'retail',
];

然后返回编码的第一个元素:

json_encode($data);
// {"country":"us","sector":"retail"}

答案 2 :(得分:0)

我遇到这种情况的经验是,您不小心将数据存储为数组的第一项。

例如,你可能已经完成了:

$json_store = Array();
$json_store[] = Array('country' => 'us', 'sector' => 'retail');
$json = json_encode($json_store);

测试此方法的一种方法是查看是否执行以下操作删除括号:

$json_encode($json_store[0])

如果是,那么您应该修复一个不必要的嵌套数组。可能应避免使用上述行,因为最好先修复数据的存储方式。