如何从json获取参数? [英] How get parametrs from json?
问题描述
完整代码:
$.post('test.php', {
id: id
},function (data) {
console.log(data);
var Server = data.response.server;
var Photo = data.response.photo;
console.log(Server);
console.log(Photo);
});
在data
中,我得到json:
in data
i get json:
{
"server":9458,
"photo":
"[{\"photo\":\"0d6a293fad:x\",\"sizes\":
[[\"s\",\"9458927\",\"1cb7\",\"PX_xDNKIyYY\",75,64],
[\"m\",\"9458927\",\"1cb8\",\"GvDZr0Mg5zs\",130,111],
[\"x\",\"9458927\",\"1cb9\",\"sRb1abTcecY\",420,360],
[\"o\",\"9458927\",\"1cba\",\"J0WLr9heJ64\",130,111],
[\"p\",\"9458927\",\"1cbb\",\"yb3kCdI-Mlw\",200,171],
[\"q\",\"9458927\",\"1cbc\",\"XiS0fMy-QqI\",320,274],
[\"r\",\"9458927\",\"1cbd\",\"pU4VFIPRU0k\",420,360]],
\"kid\":\"7bf1820e725a4a9baea4db56472d76b4\"}]",
"hash":"f030356e0d096078dfe11b706289b80a"
}
我想获取参数server
和photo[photo]
为此我使用:
var Server = data.server;
var Photo = data.photo;
console.log(Server);
console.log(Photo);
但是在console里我得到了undefined
but in concole i get undefined
比我使用代码:
var Server = data.response.server;
var Photo = data.response.photo;
console.log(Server);
console.log(Photo);
但是现在在控制台中,我看到了:
But now in console i see:
Uncaught TypeError: Cannot read property 'server' of undefined
为什么会出现错误以及如何获取参数?
Why i get errors and how get parametrs?
PS:所有代码php和jquery都找到 此处
P.S.: All code php and jquery find here
推荐答案
只需设置正确的数据类型json
,默认值是string
.
Just set proper data type json
, the default one is string
.
您的数据直接在data
变量下!
And your data is directly under data
variable!
$.post('test.php', {
id: id
},function (data) {
console.log(data);
var Server = data.server;
var Photo = data.photo;
console.log(Server);
console.log(Photo);
}, 'json');
另一种解决方案是在您的PHP响应中设置适当的标头:
Another solution is setting proper header in you PHP response:
Content-Type text/javascript; charset=UTF-8
然后jQuery Intelligent Guess
会自行设置正确的数据类型.
then jQuery Intelligent Guess
, will set proper data type itself.
这篇关于如何从json获取参数?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!