首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >JavaScript从JSON获取数据并选择值

JavaScript从JSON获取数据并选择值
EN

Stack Overflow用户
提问于 2020-04-04 14:19:33
回答 2查看 57关注 0票数 0

刚开始使用JavaScript,当然我很抱歉,我提出了一个.net数据的请求,我明白了,我真的不知道如何过滤出带有JSON域的收到的电子邮件,并只将它们输出到控制台……至少给出一个例子,或者继续做什么。

代码语言:javascript
复制
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://jsonplaceholder.typicode.com/users', false);
xhr.send();
 if (xhr.status != 200) {
      alert( xhr.status + ': ' + xhr.statusText ); 
} else {
   console.log(xhr.responseText);
} 
EN

回答 2

Stack Overflow用户

发布于 2020-04-04 14:27:50

您可以在这里使用fetch() api而不是XMLHttpRequest,因为它具有更干净的接口,并提供了一种简单、逻辑的方式来跨网络异步获取资源。得到响应后,您可以使用数组.map()方法获取一个数组中的所有邮件,最后使用.filter()方法过滤出带有.net域名的收到的邮件:

代码语言:javascript
复制
fetch('https://jsonplaceholder.typicode.com/users')
  .then((response) => response.json())
  .then((data) => {
    const emails = data.map(d => d.email).filter(e => e.includes('.net'))
    console.log(emails);
  });

票数 1
EN

Stack Overflow用户

发布于 2020-04-04 14:26:40

首先使用JSON.parse将响应转换为对象,然后检查每个元素,检查电子邮件是否匹配。

代码语言:javascript
复制
responseText = `[{"id":1, "name":"Leanne Graham", "username":"Bret", "email":"Sincere@april.biz", "address":{"street":"Kulas Light", "suite":"Apt. 556", "city":"Gwenborough", "zipcode":"92998-3874", "geo":{"lat":"-37.3159", "lng":"81.1496"}}, "phone":"1-770-736-8031 x56442", "website":"hildegard.org", "company":{"name":"Romaguera-Crona", "catchPhrase":"Multi-layered client-server neural-net", "bs":"harness real-time e-markets"}}, {"id":2, "name":"Ervin Howell", "username":"Antonette", "email":"Shanna@melissa.tv", "address":{"street":"Victor Plains", "suite":"Suite 879", "city":"Wisokyburgh", "zipcode":"90566-7771", "geo":{"lat":"-43.9509", "lng":"-34.4618"}}, "phone":"010-692-6593 x09125", "website":"anastasia.net", "company":{"name":"Deckow-Crist", "catchPhrase":"Proactive didactic contingency", "bs":"synergize scalable supply-chains"}}, {"id":3, "name":"Clementine Bauch", "username":"Samantha", "email":"Nathan@yesenia.net", "address":{"street":"Douglas Extension", "suite":"Suite 847", "city":"McKenziehaven", "zipcode":"59590-4157", "geo":{"lat":"-68.6102", "lng":"-47.0653"}}, "phone":"1-463-123-4447", "website":"ramiro.info", "company":{"name":"Romaguera-Jacobson", "catchPhrase":"Face to face bifurcated interface", "bs":"e-enable strategic applications"}}, {"id":4, "name":"Patricia Lebsack", "username":"Karianne", "email":"Julianne.OConner@kory.org", "address":{"street":"Hoeger Mall", "suite":"Apt. 692", "city":"South Elvis", "zipcode":"53919-4257", "geo":{"lat":"29.4572", "lng":"-164.2990"}}, "phone":"493-170-9623 x156", "website":"kale.biz", "company":{"name":"Robel-Corkery", "catchPhrase":"Multi-tiered zero tolerance productivity", "bs":"transition cutting-edge web services"}}, {"id":5, "name":"Chelsey Dietrich", "username":"Kamren", "email":"Lucio_Hettinger@annie.ca", "address":{"street":"Skiles Walks", "suite":"Suite 351", "city":"Roscoeview", "zipcode":"33263", "geo":{"lat":"-31.8129", "lng":"62.5342"}}, "phone":"(254)954-1289", "website":"demarco.info", "company":{"name":"Keebler LLC", "catchPhrase":"User-centric fault-tolerant solution", "bs":"revolutionize end-to-end systems"}}, {"id":6, "name":"Mrs. Dennis Schulist", "username":"Leopoldo_Corkery", "email":"Karley_Dach@jasper.info", "address":{"street":"Norberto Crossing", "suite":"Apt. 950", "city":"South Christy", "zipcode":"23505-1337", "geo":{"lat":"-71.4197", "lng":"71.7478"}}, "phone":"1-477-935-8478 x6430", "website":"ola.org", "company":{"name":"Considine-Lockman", "catchPhrase":"Synchronised bottom-line interface", "bs":"e-enable innovative applications"}}, {"id":7, "name":"Kurtis Weissnat", "username":"Elwyn.Skiles", "email":"Telly.Hoeger@billy.biz", "address":{"street":"Rex Trail", "suite":"Suite 280", "city":"Howemouth", "zipcode":"58804-1099", "geo":{"lat":"24.8918", "lng":"21.8984"}}, "phone":"210.067.6132", "website":"elvis.io", "company":{"name":"Johns Group", "catchPhrase":"Configurable multimedia task-force", "bs":"generate enterprise e-tailers"}}, {"id":8, "name":"Nicholas Runolfsdottir V", "username":"Maxime_Nienow", "email":"Sherwood@rosamond.me", "address":{"street":"Ellsworth Summit", "suite":"Suite 729", "city":"Aliyaview", "zipcode":"45169", "geo":{"lat":"-14.3990", "lng":"-120.7677"}}, "phone":"586.493.6943 x140", "website":"jacynthe.com", "company":{"name":"Abernathy Group", "catchPhrase":"Implemented secondary concept", "bs":"e-enable extensible e-tailers"}}, {"id":9, "name":"Glenna Reichert", "username":"Delphine", "email":"Chaim_McDermott@dana.io", "address":{"street":"Dayna Park", "suite":"Suite 449", "city":"Bartholomebury", "zipcode":"76495-3109", "geo":{"lat":"24.6463", "lng":"-168.8889"}}, "phone":"(775)976-6794 x41206", "website":"conrad.com", "company":{"name":"Yost and Sons", "catchPhrase":"Switchable contextually-based project", "bs":"aggregate real-time technologies"}}, {"id":10, "name":"Clementina DuBuque", "username":"Moriah.Stanton", "email":"Rey.Padberg@karina.biz", "address":{"street":"Kattie Turnpike", "suite":"Suite 198", "city":"Lebsackbury", "zipcode":"31428-2261", "geo":{"lat":"-38.2386", "lng":"57.2232"}}, "phone":"024-648-3804", "website":"ambrose.net", "company":{"name":"Hoeger LLC", "catchPhrase":"Centralized empowering task-force", "bs":"target end-to-end models"}}]`;

var data = JSON.parse(responseText);
for (var el of data) {
  if (el.email.indexOf(".net") > 0) console.log(el.email);
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61024470

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档