Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用$.parseJSON读取JSON_Javascript_Jquery_Json - Fatal编程技术网

Javascript 如何使用$.parseJSON读取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", } }

我感觉我在发布一个副本,但我就是找不到一个满意的答案。 我已经解析了一个JSON对象,它看起来像:

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
变量看起来不像您认为的那样