如何使用javascript并基于提供的输入获取JSON数据?

如何使用javascript并基于提供的输入获取JSON数据?,javascript,Javascript,如何使用javascript并基于提供的输入获取JSON数据 我的JSON文件如下所示 { "Name1": { "id": "32313", "latitude": "57.1", "longitude": "9.85", "timezone": "2", "city": "Aalborg", "country": "Denmark", "country_code": "DK

如何使用javascript并基于提供的输入获取JSON数据

我的JSON文件如下所示

{
    "Name1": {
        "id": "32313",
        "latitude": "57.1",
        "longitude": "9.85",
        "timezone": "2",
        "city": "Aalborg",
        "country": "Denmark",
        "country_code": "DK"
    },
    "Name2": {
        "id": "32314",
        "latitude": "56.15",
        "longitude": "10.2167",
        "timezone": "2",
        "city": "Aarhus",
        "country": "Denmark",
        "country_code": "DK"
    },
    "Name3": {
        "id": "122109",
        "airport_name": "Aasiaat",
        "latitude": "68.7",
        "longitude": "-52.75",
        "timezone": "-3",
        "city": "Aasiaat",
        "country": "Greenland",
        "country_code": "GL"
    },
    "Name4": {
        "id": "116713",
        "latitude": "30.371111",
        "longitude": "48.228333",
        "timezone": "4",
        "city": "Abadan",
        "country": "Iran",
        "country_code": "IR"
    },
    "Name5": {
        "id": "116711",
        "latitude": "53.74",
        "longitude": "91.385",
        "timezone": "7",
        "city": "Abakan",
        "country": "Russia",
        "country_code": "RU"
    },
    "Name6": {
        "id": "120587",
        "latitude": "49.05",
        "longitude": "-122.2833",
        "timezone": "-7",
        "city": "Abbotsford",
        "country": "Canada",
        "country_code": "CA"
    },
    "Name7": {
        "id": "116759",
        "latitude": "13.847",
        "longitude": "20.844333",
        "timezone": "1",
        "city": "Abeche",
        "country": "Chad",
        "country_code": "TD"
    },
    "Name8": {
        "id": "32325",
        "latitude": "57.2",
        "longitude": "-2.2",
        "timezone": "1",
        "city": "Aberdeen",
        "country": "United Kingdom",
        "country_code": "GB"
    }
}
从上面的JSON文件。。。我需要得到以下信息:

  • 获取国家列表
  • 根据提供的国家名称获取城市名称
  • 请帮我解析上面的JSON文件

    谢谢, 尤甘达尔

    underline.js()是javascript库的瑞士军刀,在处理类似本例的数据集时非常有用

    我创建了一个JSFIDLE来解决您的两个用例

    以下是重要部分:

    function getCityData(country) {
        return _(data)
            .filter(function(el) {
                return el.country === country;
            });           
    }
    
    function getCountries() {
        return _(data).chain().pluck("country").uniq().value();
    }
    

    如何根据国家或城市名称获取关键名称。。。例如:getKeyName(Country)应该像那样返回“Name1/Name2/”。您不需要使用国家代码作为键,除非您愿意,否则您可以将城市[国家代码]替换为城市[国家]。如果您确实想使用country_代码作为键,只需添加另一个名为var country_code=[]的全局变量,然后添加country_code.push(country_code);你好我想我的问题提得不好。。。当我提供的相应国家/地区代码。。。如果我说Country_Code=“GB”,那么我的返回值=“Name8”…啊,对不起,我误解了,我用一个keyNames对象更新了我的代码嘿@YugandharKumar刚刚跟进,keyNames对象对你有用吗?
    var countries = [];
    // Vanilla Javascript
    // Get Array of countries
    for( var name in json ){
      countries.push(json[name]["country"]);
    }
    // Get city name based on country name
    
    var getCities =  function(country){
      var cities = [];
      for( var name in json ){
        if (country === json[name]["country"]){
          cities.push(name);
        }
      }
      return cities;
    }
    
    // Usage
    var cities = getCities("Denmark"); //
    
    function getCityData(country) {
        return _(data)
            .filter(function(el) {
                return el.country === country;
            });           
    }
    
    function getCountries() {
        return _(data).chain().pluck("country").uniq().value();
    }