Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从AJAX响应中获取值_Javascript - Fatal编程技术网

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; } );