我正在尝试从JSON文件中检索数据,但是我无法从特定属性中检索信息

时间:2016-06-16 21:49:26

标签: javascript arrays angularjs json object

这是我的JSON文件:

{
    "query":{
        "count":1,
        "created":"2016-06-16T21:09:11Z",
        "lang":"en-US",
        "results":{
            "channel":{
                "units":{
                    "distance":"mi",
                    "pressure":"in",
                    "speed":"mph",
                    "temperature":"F"
                },
                "title":"Yahoo! Weather - Ormond Beach, FL, US",
                "link":"http://us.rd.yahoo.com/dailynews/rss/weather/Country__Country/*https://weather.yahoo.com/country/state/city-2466336/",
                "description":"Yahoo! Weather for Ormond Beach, FL, US",
                "language":"en-us",
                "lastBuildDate":"Thu, 16 Jun 2016 05:09 PM EDT",
                "ttl":"60",
                "location":{
                    "city":"Ormond Beach",
                    "country":"United States",
                    "region":" FL"
                }
            }
        }
    }
}

这不是所有代码,但它是我遇到问题的部分。

我正在尝试将位置(Ormond Beach, Fl)保存为变量。我正在使用这个angularjs代码,它似乎不起作用:$scope.location = response.data.query.results.location;。 JSON文件没有任何问题,因为我稍后使用ng-repeat在JSON文件中检索了其他信息,但是,我将Ormond Beach保存为变量$scope.location时遇到问题。请帮我!

非常感谢!

2 个答案:

答案 0 :(得分:0)

response.data.query.results.location不是字符串,它是一个对象,每个字符串都有3个属性:

{
    "city":"Ormond Beach",
    "country":"United States",
    "region":" FL"
}

您需要连接所需的属性:

$scope.location = response.data.query.results.location.city + ', ' + response.data.query.results.location.region;

为了好玩,我会向您展示我喜欢用于此类事情的表单:

$scope.location = [
    response.data.query.results.location.city,
    response.data.query.results.location.region
].join(', ');

它帮助我非常清楚地看到哪些数据正在进入。

答案 1 :(得分:0)

位置和结果之间有一个中间对象,即通道。

尝试改为:

$scope.location = response.data.query.results.channel.location;

然后你只需要连接location.city和location.region