嘿我正在尝试使用json_encode
以json格式传回数据。
然而它似乎像这样回归:
[{‘county’:’us’,’sector’:’retail’}]
然而,最终用户表示他们希望没有方括号的响应。
我该怎么做?
感谢。
答案 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])
如果是,那么您应该修复一个不必要的嵌套数组。可能应避免使用上述行,因为最好先修复数据的存储方式。