我在我的项目中使用纯JavaScript。如何使用类别获取以下示例的值?我需要检测它是回真还是假。
{
"category": "true"
}
我可以获得整个对象,但我只想提取类别的值。
来自评论......
基于表单提交从服务器返回JSON数据。它一直说myObject未定义。我怎么能通过这个,以便我的JavaScript可以读取响应?
来自评论......
我可以使用
if (form.XHR.status === 200) {var data = form.XHR.response;}
来获取myObject,但如果我尝试data.myObject
,则说它未定义。
答案 0 :(得分:3)
您需要先解析JSON,然后才能将其作为对象访问...
if (form.XHR.status === 200) {
var data = form.XHR.response;
var parsed = JSON.parse(data);
alert(parsed.category);
}
为什么需要这个?这是因为 JSON不是JavaScript 。这两个术语不是同义词。
JSON是一种文本数据交换格式。需要将解析为任何语言的数据结构。在您的情况下,该语言是JavaScript,因此您需要将其解析为JavaScript数据。
当从xhr响应接收到它时,它以用JavaScript处理所有文本数据的形式接收。这是string
。作为字符串,您无法直接访问表示的值。
JavaScript有一个名为JSON.parse
的内置解析器。这在上面的例子中用于进行必要的转换。
某些较旧的浏览器不支持JSON.parse
。如果您支持这些浏览器,则可以在http://json.org找到JavaScript解析器。
答案 1 :(得分:2)
首先,您需要一个变量来引用它:
var obj = {
"category": "true"
};
然后你可以说例如:
alert(obj.category);
答案 2 :(得分:1)
var myObject = { "category": "true"};
alert (myObject.category);
但你可能想要:
var myObject = { "category": true};
...如果你要测试真/假:
if (myObject.category) {
// category is true, so do your stuff here.
}
答案 3 :(得分:0)
您可以使用'。'访问json对象数据。或者[关键]这样:
var obj = {
"category": "true"
};
console.log(obj.category);
// Or
console.log(obj["category"]);
以下是DEMO
答案 4 :(得分:-1)
对于任何到达这里将头撞在墙上的人,请确保查看是否需要访问包装所有传递数据的父对象:
console.log(response['id'])
可能不起作用,因为必须先访问父实体:
console.log(response.session['id'])
如果您在控制台中记录响应,并且该响应包含在{}
中,则可能需要这样做。