我有一个变量json
,当我致电console.log(json)
时,它会输出{"buildingName":"", "addressLine1":"", "postcode":""}
为什么,当我致电console.log(json.postcode)
时,我会得到undefined
?
修改
console.log(typeof json)
确实会输出' string'。感谢大家的帮助!
答案 0 :(得分:5)
json
仍然是一个字符串,您需要JSON.parse
将其转换为对象。您现在正在尝试访问postcode
的未定义属性String
。
答案 1 :(得分:2)
如果它是 JSON ,则它是一个字符串,因此它没有该属性。您正尝试将其用作对象( JSON 中的 O )。
您可以通过
将其变为对象let object = JSON.parse(json)
答案 2 :(得分:1)
您的变量json
必须是一个字符串,这就是您在访问媒体资源undefined
postcode
的原因
错误代码
var json = '{"buildingName":"", "addressLine1":"", "postcode":""}';
console.log(json.postcode);

因此,您需要做的是解析json
变量以获取已解析的json,然后访问postcode
。由于postcode
为空,因此您不会在控制台中为此属性打印任何内容:
工作代码
var json = '{"buildingName":"", "addressLine1":"", "postcode":""}';
var json = JSON.parse(json);
console.log(json.postcode);

答案 3 :(得分:0)
您必须将JSON字符串解析为对象。为此,请尝试$.parseJSON(json)
。
一个工作示例:
$(document).ready(function(){
var json = '{"buildingName":"", "addressLine1":"", "postcode":"xyz"}';
var parsedStr = $.parseJSON(json);
console.log(parsedStr.postcode);
});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
答案 4 :(得分:0)
我假设你的真实语法是:
json = '{"buildingName":"", "addressLine1":"", "postcode":""}';
这是一个字符串。为了将其更改为对象,您需要将其解析为如下对象:
data = JSON.parse(json);
现在您可以记录对象及其内容。而不仅仅是字符串:
console.log(data);
console.log(data.postcode);