Javascript 如何使用$.parseJSON读取JSON
我感觉我在发布一个副本,但我就是找不到一个满意的答案。 我已经解析了一个JSON对象,它看起来像:Javascript 如何使用$.parseJSON读取JSON,javascript,jquery,json,Javascript,Jquery,Json,我感觉我在发布一个副本,但我就是找不到一个满意的答案。 我已经解析了一个JSON对象,它看起来像: var jsonresp = $.parseJSON(response); jsonresp = { "success": true, "resource": { "street": "the address", "house_number": number, "postcode": "postcode", "town": "city", } }
var jsonresp = $.parseJSON(response);
jsonresp =
{
"success": true,
"resource": {
"street": "the address",
"house_number": number,
"postcode": "postcode",
"town": "city",
}
}
如果我是对的,方括号表示它是一个物体。但花括号代表什么呢
假设我想得到street的值,为什么
jsonresp.resource.street
返回undefined?换句话说,花括号之间的资源内容是什么?我应该如何选择它们
编辑:谢谢大家的反应。似乎有别的事情出了问题
这就是我使用的代码:
$.post(ajaxurl, postretrieve, function(response) {
var jsonresp = $.parseJSON(response);
console.log(jsonresp);
var jsonresp2 = {"success":true,"resource":{"street":"streetname","house_number":20,"postcode":"postcode","town":"city"}};
console.log(jsonresp2.resource.street);
}
我完全复制粘贴jsonresp中的内容,并将其作为第二个变量jsonresp2
jsonresp2.resource.street
返回正确的值,但jsonresp.resource.street
给出错误:未捕获类型错误:无法读取未定义的属性“street”
我做错了什么
编辑2:
我正在用php对我的输出文件进行json_编码,该文件已经是json_编码的,谢谢您的帮助 这是基本的javascript:a
{…}
(花括号)定义对象文字,a[…]
(方括号)定义数组。如果你有
var myObj = {
someProperty: 'property value'
};
myObj.someProperty//计算为“属性值”
或
myObj['someProperty']//计算结果为'property value'
正如您在对问题的评论中提到的,如果
jsonresp.resource.street
代码返回未定义,那么您的json结构就不是您所认为的那样 在引号中加上数字后,再次尝试jsonresp.resource.street
jsonresp =
{
"success": true,
"resource": {
"street": "the address",
"house_number": "number",
"postcode": "postcode",
"town": "city",
}
}
Felix对其中一个问题给出了答案,让我来找到它。
如果我是正确的,方括号表示它是一个不正确的对象。方括号是一个数组。但是,您的jsonresp.resource.street
应该为您提供该值jsonresp.resource.street
应该适用于该对象(注意,我必须将number
更改为已定义的内容):如果jsonresp.resource.street
没有给出您期望的值,那么该对象的结构就不是您在此处发布的内容console.log
每个嵌套属性(一步一步)并检查该值以了解如何访问它。如果jsonresp.resource.street
返回未定义,则您的jsonresp
变量看起来不像您认为的那样