如何在JavaScript中获取JSON数据数组?

时间:2018-11-21 20:26:23

标签: javascript python json

如何在JavaScript中执行以下操作?我想从网址“ https://data.cityofnewyork.us/resource/734v-jeq5.json”中加载JSON数据。然后,获取仅包含'sat_critical_reading_avg_score'数组的JSON数据。任何帮助将不胜感激。

import json
import urllib.request

def get_data():
  response = urllib.request.urlopen("https://data.cityofnewyork.us/resource/734v-jeq5.json")
  content = response.read().decode()
  response1 = json.loads(content)
  result = []
  for i in response1:
    try:
      result.append(
        int(i['sat_critical_reading_avg_score'])
      )
    except:
      pass
  return result


print(get_data())

2 个答案:

答案 0 :(得分:1)

您可以同时使用内置JavaScript的fetch()JSON.parse()方法。

下面是一个简单的示例,该示例从服务器获取JSON字符串,将其转换为JS对象并将结果输出到控制台:

    let JSobject; 

    fetch('https://data.cityofnewyork.us/resource/734v-jeq5.json')
    .then(function(JSONstring) {
        JSobject = JSON.parse(JSONstring);
    });

    console.log(JSobject.sat_critical_reading_avg_score);

有关JavaScript的更多知识,我推荐一本Eloquent JavaScript书。一本相当不错的书,在线提供免费版本: http://eloquentjavascript.net/

答案 1 :(得分:0)

您的代码转换为TS / JS:     函数getData():        const fetchData =

fetch('https://data.cityofnewyork.us/resource/734v-jeq5.json').then(response => {
         let data = JSON.parse(response);
         let result = [];
         for (i in data) {
           try {
             result.push(parseInt(data[i].sat_critical_reading_avg_score));
           } catch (err) {}
         }
         return result;
       });
       return fetchData;

    console.log(getData());

简化了ES7样式:

const data = fetch('https://data.cityofnewyork.us/resource/734v-jeq5.json').then(response => response.json().map(item => item.sat_critical_reading_avg_score));
console.log(data);