【发布时间】:2014-12-08 01:11:32
【问题描述】:
我有这个 JSON 输出:
{
"title": "test1",
"status": "private",
"markers": "\"[{\"k\":48.28319289548349,\"B\":1.494140625},{\"k\":44.024421519659334,\"B\":20.302734375},{\"k\":47.517200697839414,\"B\":40.517578125},{\"k\":53.9560855309879,\"B\":23.73046875},{\"k\":49.66762782262194,\"B\":3.251953125}]\""
}
{
"title": "test2",
"status": "public",
"markers": "\"[{\"k\":48.574789910928864,\"B\":10.546875},{\"k\":43.19716728250127,\"B\":12.48046875}]\""
}
在 JSONLint 上我收到此错误:
Parse error on line 5:
...":3.251953125}]\""}{ "title": "test
----------------------^
Expecting 'EOF', '}', ',', ']'
这是获取 JSON 对象的 PHP 代码:
if ($bdd = mysqli_connect('localhost', '', '', _BDD_NAME_)) {
$sql = 'SELECT * FROM `trip`';
$result = mysqli_query($bdd, $sql);
if ($result) {
while ($row = $result->fetch_assoc()) {
echo json_encode(array('title' => stripslashes($row['title']),
'status' => stripslashes($row['status']),
'markers' => stripslashes($row['markers'])));
}
}
else {
echo json_encode(array('status' => 'failure'));
}
}
if ($bdd) {
mysqli_close($bdd);
}
谁能帮我确定这个 JSON 对象的错误在哪里?
【问题讨论】:
-
这不是有效的 JSON。这是两个 JSON 对象,而不是一个。
-
@HoboSapiens 是的,但是我从 MySQL 查询中获取所有 JSON 对象,女巫给了我所有这些输出,我该如何处理多个对象?
-
@Katcha 将它们放入一个数组中。我觉得这个问题实际上是关于你如何从 MySQL 构建 JSON 响应。将您的服务器端代码添加到问题中,我们可以指出您哪里出错了
-
@Phil 你是对的,你现在可以看到 PHP 代码了。
-
感觉不久前有一个非常相似的问题。让我找到它
标签: javascript json parsing object