使用JavaScript解析JSON对象数组时遇到问题。我的PHP文件获取数据库信息,例如:
Array
(
[0] => Array
(
[id] => 1
[name] => holly
[text] => Text 1
)
[1] => Array
(
[id] => 2
[name] => Becky
[text] => Text 2
)
)
然后我通过json_encode运行它(得到这个:
"[\r\n {\r\n \"id\":\"1\",\r\n \"name\":\"holly\",\r\n
\"text\":\"Text 1\"\r\n },\r\n {\r\n \"id\":\"2\",\r\n
\"name\":\"Becky\",\r\n \"tet\":\"Text 2\"\r\n }\r\n]"
此数据通过JavaScript函数从此处调用:http://oscargodson.com/posts/unmasking-jsonp.html
JSONP( url, function(json){console.log(json)});
回调不会返回我可以解析的任何内容,如果我执行console.log(json),我只会得到[Object Object]。我从PHP获得结果,因为Chrome的Web开发人员中的Sources选项卡显示了php文件和jsonified文本。我无法弄清楚如何将其发送到JavaScript进行解析。
我已经读过很多重复的'问题和许多人说使用JSON.stringify(),但我没有得到任何结果。
我的PHP或我的错误是不是正确使用JavaScript?请帮忙。
答案 0 :(得分:0)
本文中的JSONP()函数不能处理来自数据库的数据,但是如果相同的数据是硬编码的。怪异。
var result = [
{"id":"1","name":"holly","text":"Text 1"},
{"id":"2","name":"Becky","text":"Text 2"}
];
for (var i = 0; i < result.length; i++) {
}
怪异。不知道为什么这个函数没有像预期的那样返回,但我想这就是为什么jQuery有$ .getJSON()所以我们不必每次都经历这一切。
答案 1 :(得分:0)
您希望通过简单的
运行数据json_encode($data)
但请注意传递给此调用的任何其他参数 - 因为在您发布的字符串中(JSON编码函数的结果) - 您已经漂亮打印。 这可能是您的JSONP调用此类资源失败的主要原因 - 数据是非常精确的 - 当它不应该是。
答案 2 :(得分:-1)
$.ajax(
{
url: "callback/yourcallback.php", //at the end echo json_encode($array);
dataType: "jsonp",
data: { paramname: paramvalue},
type: "POST"
})
.done(function( data )
{
var response=$.parseJSON(data);
console.log(response);
});