搜索具有其他信息的国家/地区列表

时间:2014-06-17 16:46:33

标签: jquery json

基本上,我有一份经纬度国家列表,想要计算两个国家之间的距离。 所以我将这些信息放在JSON文件中,看起来像这样

[
  {
    "country":"China",
    "latitude":35.0,
    "longitude":105.0,
    "continent":"Asia"
  },
  {
    "country":"India",
    "latitude":20.0,
    "longitude":77.0,
    "continent":"Asia"
  },
  ...
]

然后我在jQuery中加载这个文件:$.getJSON( 'countries.json', function(data){ var json = data; });

现在我想获得与json.China.longitude一样简单的具体信息。 我知道它不会像这样工作,但最简单的方法是什么?

基于GPS坐标计算距离是另一回事,但我已经找到了这个功能。

2 个答案:

答案 0 :(得分:2)

最好更新countries.json以返回以国家/地区为键的对象,因为这样可以节省一些查找时间。否则你必须迭代数组。您可以使用原生filter

var china = json.filter(function (elem) {
    return elem.country == "China";
})[0];

或者您可以使用类似Underscore.js

的内容

答案 1 :(得分:1)

如果你想这样做,最好将你的JSON更改为更好,如果可能的话。

[
{
    "China": {
        "latitude": 35,
        "longitude": 105,
        "continent": "Asia"
    },
    "India": {
        "latitude": 20,
        "longitude": 77,
        "continent": "Asia"
    }
}