json_encode和JSON.parse不协调

时间:2013-12-13 14:13:02

标签: javascript php json

我使用json_encode

在我的php页面上获得此输出
{"id":"761","user":"Moderator","message":"test"} 
{"id":"760","user":"Patrick","message":"test"}

现在我想用javascript中的JSON.parse解析这些值,以获得一个数组。 但它不起作用。

只有我有一个json Objekt才有效。

解决这个问题的最佳方法是什么?

要拆分'}'并解析我将得到的每个字符串?

4 个答案:

答案 0 :(得分:5)

{}{}无效JSON。你需要有一个数组包装它们并用逗号[{},{}]分隔它们。您可以通过以下方式在PHP中执行此操作:

$entries = array();
foreach ($database_entry as $array) {
    $entries[] = $array;
}
echo json_encode($entries);

那就是你应该只调用json_encode 一次

答案 1 :(得分:1)

此输出不是正确的JSON对象或数组。你想要做的是将对象包装在方括号中,并用逗号分隔它们。输出应如下所示:

[{"id":"761","user":"Moderator","message":"test"}, 
{"id":"760","user":"Patrick","message":"test"}]

您需要更改PHP以便以这种方式生成输出。

答案 2 :(得分:0)

JSON.parse仅应用字符串:

JSON.parse(text[, reviver])

文字是 要解析为JSON的字符串。有关JSON语法的说明,请参阅JSON对象。 MDN

答案 3 :(得分:0)

您需要将对象输出到JSON数组中,每个对象/数组项用逗号分隔:

{ 
  "users": [
      {"id":"761","user":"Moderator","message":"test"}, 
      {"id":"760","user":"Patrick","message":"test"}
  ]
}