Javascript 从AJAX响应中获取值
我得到了这样的回应Javascript 从AJAX响应中获取值,javascript,Javascript,我得到了这样的回应 [ { "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-c710
[
{
"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
}
]
如何在JavaScript中解析它,并在一个数组中获得两个ID和名称?抱歉,我不熟悉JavaScript,假设您得到这个json on数据变量
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作为第一个元素的
数据[0]。id
data.length
将为您提供对象的总数,这样您就可以像使用JSON的字符串表示一样迭代。要将其转换为JSON对象,可以使用
要从数组中的每个对象获取id
字段,可以使用ES6中所示的方法
var response='[{“id”:“958315db-ca46-4b32-ad89-f0564a2bfa37”,“name”:“XXXX”,“device_count”:3,“gateway_count”:2,“longitude”:-109.207929279275995,“latitude”:33.1906871835467},{“id”:“4485e5ee-ba30-4103-8f24-c710efed3929”,“name”:“yyyyyyy”,“device_count”:0,“gateway_count”:0,“longitude”:null,“latitude”:null];
var id=JSON.parse(response.map)(e=>({
id:e.id,
姓名:e.name
}));
控制台日志(ids);
document.body.innerHTML=''+JSON.stringify(ids,0,4)+'';//出于演示目的
可以使用JSON.parse()
将字符串转换为“等效”JavaScript对象。更多信息请点击此处:
var obj = JSON.parse(response); // an array in your case
var ids = obj.map(e => e.id);
var names = obj.map(e => e.name);
在您的情况下,您可以这样做:
var ids = obj.map( function(e) { return e.id; } );
.map()
调用正在使用新的“胖箭头”操作符。这种几乎等价的语法可能更为常见:
有关数组映射函数的信息:
有关[Fat]箭头函数的信息:
varids=JSON.parse(response.map)(e=>e.id)
@Tushar您可能希望改用ES5语法;如果你不知道速记语法,可能会让人困惑。事实上,我认为这是“规范”的答案。但是,这两个答案的问题在于,它们基本上都是“使用JSON.parse
”,没有关于如何访问结果的进一步信息。@Tushar的答案只回答了原始问题的一半,因为它只获取“id”,而不获取“name”。
var ids = obj.map( function(e) { return e.id; } );