如何从 JSON 响应获取数据
How to get data from JSON response?
我在我的项目中使用纯JavaScript。如何使用类别获取以下示例的值?我需要检测它是真的还是假的。
{
"category": "true"
}
我可以得到整个对象,但我只想拉出类别的值。
从评论...
JSON 数据根据表单提交从服务器返回。它一直说myObject是未定义的。我怎样才能传递这个,以便我的 JavaScript 可以读取响应?
从评论...
我可以使用这个来获取myObject:
if (form.XHR.status === 200) {var data = form.XHR.response;}
,但是如果我尝试这样做data.myObject
它就会说它是未定义的。
您需要先解析 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 解析器。
你需要一个变量来引用它:
var obj = {
"category": "true"
};
那你能说例如:
alert(obj.category);
var myObject = { "category": "true"};
alert (myObject.category);
但您可能希望:
var myObject = { "category": true};
。如果要测试真/假:
if (myObject.category) {
// category is true, so do your stuff here.
}
您可以使用 '." 或 [key] 访问 json 对象数据,如下所示:
var obj = {
"category": "true"
};
console.log(obj.category);
// Or
console.log(obj["category"]);
这是演示
对于任何来到这里的人,他们的头撞在墙上,一定要看看你是否需要访问一个包装所有交付数据的父对象:
console.log(response['id'])
可能不起作用,因为必须先访问父实体:
console.log(response.session['id'])
如果您控制台记录您的响应并且它被包装在{}
您可能需要执行此操作。
- Ajax-如何获取数据
- 从键值结构中获取数据,并将其与AngularJS中ng重复的值进行比较
- 从数据库中获取数据并插入JavaScript变量
- 从单击的行上的列中获取数据
- Solr查询以按日期月份获取数据&年
- React路由器服务器端渲染和ajax获取数据
- 使用JavaScript在IE9中获取数据列表选项
- 从json子数组获取数据
- 使用angularjs中的rest调用通过id获取数据
- 正在从ruby应用程序中的数据库中获取数据
- 如何从servlet获取数据到ajax成功
- 从选择下拉菜单中获取数据
- 异步获取数据使用JavaScript同步获取数据
- 从服务器获取数据并在选择控件中使用ng选项无法显示选项
- 如何在Angular.js中循环动态添加Fields并获取数据并将其发送到服务器
- JavaScript-获取数据属性的值返回未定义的值
- 如何从文本区域获取数据并使用javascript进行解密
- 在put方法之前从作用域获取数据
- 事件循环的MEAN.JS setInterval进程(从另一个服务器获取数据)
- 使用ReactJS和Flux架构从服务器获取数据的正确方法是什么