编码 - 解码Json问题

时间:2016-01-27 15:42:07

标签: javascript php json

我尝试使用XMLHttpRequest连接带有php文件的chrome扩展。

工作正常,但我可以使用JSON.parse解码Json。

Js文件:

var client = new XMLHttpRequest();
                client.onreadystatechange = function() {
                    if (client.readyState == XMLHttpRequest.DONE) {
                            var j = client.responseText;

                        console.log(j);

                            }
                }
                client.open("GET", "http://localhost/extencio/index.php?"+o, true);

                client.send();

在php文件中,我返回一个对象:

echo json_encode($oFinal);

console.log(j); 的结果是:

{ “textoDonde”: “农布雷”, “值”: “的getText”, “东德”: “名称”} { “textoDonde”: “apellido”, “值”: “的getText”, “东德”:” name“} {”textoDonde“:”sexo“,”value“:”TyPE no detectoado“,”donde“:”name“} {“textoDonde”:“sexo”,“value”:“TyPE no detectoado”,“donde”:“name”}

我在js文件中更改此行以进行解码:

var j = JSON.parse(client.responseText);

但还有其他错误:

未捕获的SyntaxError:意外的令牌{client.onreadystatechange @ popup.js:66 VM71:1未捕获的SyntaxError:意外的令牌{client.onreadystatechange @ popup.js:66

66是“var j”行。

1 个答案:

答案 0 :(得分:1)

您的JSON输出无效。输出中有多个对象。你想要一个对象数组吗?试试这个:

[{"textoDonde":"nombre","value":"getText","donde":"name"},{"textoDonde":"apellido","value":"getText","donde":"name"},{"textoDonde":"sexo","value":"TyPE no detectoado","donde":"name"},{"textoDonde":"sexo","value":"TyPE no detectoado","donde":"name"}]

通过像http://jsonlint.com/这样的linter运行JSON以查看它是否有效。