更改JSON对象

时间:2013-11-22 15:47:56

标签: javascript

我正在尝试将信息“推送”到json对象。

我有这个json对象:

var lol = {
    "locations": {
        "United States": [
            {
                "Illinois": [
                    {
                        "Chicago": "http://website1.com/",
                        "Springfield": "http://website2.com/"
                    }
                ],
                "New York": [
                    {
                        "New York": "http://website3.com/",
                        "Brooklyn": "http://website4.com/"
                    }
                ]
            }
        ]
    }
};

我正在尝试做一些事情:

  1. 如何将新城市行添加(“推送”)到特定州? (例如,将“皇后区”添加到纽约)
  2. 如何检查对象中是否已存在状态?
  3. 如何按字母顺序对州内的城市进行排序?

1 个答案:

答案 0 :(得分:3)

首先让我们整理你的对象。你的括号太多了。

var lol = {
    "locations": {
        "United States": {
            "Illinois": {
                "Chicago": "http://website1.com/",
                "Springfield": "http://website2.com/"
            },
            "New York": {
                "New York": "http://website3.com/",
                "Brooklyn": "http://website4.com/"
            }
        }
    }
};

现在已经完成,添加新城市很简单:

lol.locations["United States"]["New York"]["Queens"] = "http://website5.com/";

检查状态是否存在:

if( lol.locations["United States"]["Illinois"]) {
    // it exists! Do something!
}

对城市进行排序有点困难。对象是不可移植的,密钥由浏览器处理。也就是说,您可以使用数组“helper”:

var cities = Object.keys(lol.locations["United States"]["New York"]);
cities.forEach(function(city) {
    console.log(city+": "+lol.loctions["United States"]["New York"][city]);
});

希望这有帮助!