2

我很难理解如何读取包含“@attributes”的 JSON 对象。

Javascript

$.ajax({
    type: "GET",
    dataType: 'json',
    url: "http://..../script/weather.php?r="+req,
    success: function(data){
       alert(data.weather.forecast_information.city[0].data)
    }
});

JSON响应:

{
    "@attributes": {
        "version": "1"
    },
    "weather": {
        "@attributes": {
            "module_id": "0",
            "tab_id": "0",
            "mobile_row": "0",
            "mobile_zipped": "1",
            "row": "0",
            "section": "0"
        },
        "forecast_information": {
            "city": {
                "@attributes": {
                    "data": "Kreuzlingen, Thurgovia"
                }
            },
            "postal_code": {
                "@attributes": {
                    "data": "kreuzlingen"
                }
            },
            "latitude_e6": {
                "@attributes": {
                    "data": ""
                }
            },
            "longitude_e6": {
                "@attributes": {
                    "data": ""
                }
            },
            "forecast_date": {
                "@attributes": {
                    "data": "2012-07-03"
                }
            },
            "current_date_time": {
                "@attributes": {
                    "data": "1970-01-01 00:00:00 +0000"
                }
            },
            "unit_system": {
                "@attributes": {
                    "data": "US"
                }
            }
        },
        "current_conditions": {
            "condition": {
                "@attributes": {
                    "data": "Cloudy"
                }
            },
            "temp_f": {
                "@attributes": {
                    "data": "70"
                }
            },
            "temp_c": {
                "@attributes": {
                    "data": "21"
                }
            },
            "humidity": {
                "@attributes": {
                    "data": "Humidity: 68%"
                }
            },
            "icon": {
                "@attributes": {
                    "data": "/ig/images/weather/cloudy.gif"
                }
            },
            "wind_condition": {
                "@attributes": {
                    "data": "Wind: N at 0 mph"
                }
            }
        },
        "forecast_conditions": [
            {
                "day_of_week": {
                    "@attributes": {
                        "data": "Tue"
                    }
                },
                "low": {
                    "@attributes": {
                        "data": "55"
                    }
                },
                "high": {
                    "@attributes": {
                        "data": "72"
                    }
                },
                "icon": {
                    "@attributes": {
                        "data": "/ig/images/weather/thunderstorm.gif"
                    }
                },
                "condition": {
                    "@attributes": {
                        "data": "Thunderstorm"
                    }
                }
            },
            {
                "day_of_week": {
                    "@attributes": {
                        "data": "Wed"
                    }
                },
                "low": {
                    "@attributes": {
                        "data": "66"
                    }
                },
                "high": {
                    "@attributes": {
                        "data": "79"
                    }
                },
                "icon": {
                    "@attributes": {
                        "data": "/ig/images/weather/chance_of_storm.gif"
                    }
                },
                "condition": {
                    "@attributes": {
                        "data": "Chance of Storm"
                    }
                }
            },
            {
                "day_of_week": {
                    "@attributes": {
                        "data": "Thu"
                    }
                },
                "low": {
                    "@attributes": {
                        "data": "61"
                    }
                },
                "high": {
                    "@attributes": {
                        "data": "77"
                    }
                },
                "icon": {
                    "@attributes": {
                        "data": "/ig/images/weather/chance_of_storm.gif"
                    }
                },
                "condition": {
                    "@attributes": {
                        "data": "Chance of Storm"
                    }
                }
            },
            {
                "day_of_week": {
                    "@attributes": {
                        "data": "Fri"
                    }
                },
                "low": {
                    "@attributes": {
                        "data": "63"
                    }
                },
                "high": {
                    "@attributes": {
                        "data": "79"
                    }
                },
                "icon": {
                    "@attributes": {
                        "data": "/ig/images/weather/chance_of_rain.gif"
                    }
                },
                "condition": {
                    "@attributes": {
                        "data": "Chance of Rain"
                    }
                }
            }
        ]
    }
}

错误(铬);

未捕获的类型错误:无法读取未定义的属性“数据”

问题是,如何在警报中获得“Kreuzlingen, Thurgovia”?

4

1 回答 1

9

得到这样的:

alert(data.weather.forecast_information.city["@attributes"].data)
于 2012-07-03T18:28:10.047 回答