在Javascript中解析多级JSON字符串

在Javascript中解析多级JSON字符串,javascript,json,parsing,Javascript,Json,Parsing,我想在Javascript中解析以下JSON字符串: str = { "weather":[{ "id":803, "main":"Clouds", "description":"broken clouds", "icon":"04d" }], "cod":200 } 我通常像这样解析JSON字符串: var obj = JSON.parse(str); alert(obj.weather.descript

我想在Javascript中解析以下JSON字符串:

str = {
    "weather":[{
        "id":803,
        "main":"Clouds",
        "description":"broken clouds",
        "icon":"04d"
    }],
    "cod":200
}
我通常像这样解析JSON字符串:

var obj = JSON.parse(str);
alert(obj.weather.description);
alert(str.weather[0].description);
但在这种情况下,它对我不起作用。如何解析这样的JSON字符串?

您只需要使用

alert(str.weather[0].description);
  • 由于
    str
    已经是一个对象,您不需要再次
    parse()
    它,这将导致错误
  • 由于
    weather
    是一个数组,因此需要使用
    index
    访问数组的元素

  • 您需要创建一个如下所示的数组:

    var obj = JSON.parse(str);
    alert(obj.weather.description);
    
    alert(str.weather[0].description);
    

    这不是一个JSON字符串,这是一个object可能的副本。如果您在解析后理解结构时遇到问题,请将其分配给一个全局变量,然后在控制台中使用它。解决方案可能的副本是,weather是一个数组。你的助手解决了我的问题。