从AJAX响应中获取值
这个问题在这里已经有了答案:
正如你所说的JSON的字符串表示。 要将其转换为JSON对象,可以使用JSON.parse()
。
要从数组中的每个对象获取id
字段,可以使用ES6中使用箭头函数显示的Array#map
。
JSON.parse(response).map(e => ({
id: e.id,
name: e.name
}));
var response = '[ { "id": "958315db-ca46-4b32-ad89-f0564a2bfa37", "name": "XXXX", "device_count": 3, "gateway_count": 2, "longitude": -109.207929275995, "latitude": 33.1906871835467 }, { "id": "4485e5ee-ba30-4103-8f24-c710efed3929", "name": "YYYY", "device_count": 0, "gateway_count": 0, "longitude": null, "latitude": null } ]';
var ids = JSON.parse(response).map(e => ({
id: e.id,
name: e.name
}));
console.log(ids);
document.body.innerHTML = '<pre>' + JSON.stringify(ids, 0, 4) + '</pre>'; // For DEMO purpose
假设你在数据变量上获得这个json
var data = [ { "id": "958315db-ca46-4b32-ad89-f0564a2bfa37", "name": "XXXX", "device_count": 3, "gateway_count": 2, "longitude": -109.207929275995, "latitude": 33.1906871835467 }, { "id": "4485e5ee-ba30-4103-8f24-c710efed3929", "name": "YYYY", "device_count": 0, "gateway_count": 0, "longitude": null, "latitude": null } ]
你可以很容易地将id作为第一个元素的data[0].id
。 data.length
将为您提供对象的总数,以便您可以迭代
您可以使用JSON.parse()
将字符串转换为“等效”JavaScript对象。 更多信息在这里:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse
在你的情况下,你可以做这样的事情:
var obj = JSON.parse(response); // an array in your case
var ids = obj.map(e => e.id);
var names = obj.map(e => e.name);
.map()
调用正在使用新的“胖箭头”运算符。 这种几乎相同的语法可能更为熟悉:
var ids = obj.map( function(e) { return e.id; } );
有关Array映射函数的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/map
关于[Fat]箭头函数的信息:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions
链接地址: http://www.djcxy.com/p/31713.html