如何使用Angularjs从json数据中获取特定值

时间:2015-02-21 17:00:47

标签: angularjs

我是AngularJs的新手。我试图根据搜索关键词从json获取值并显示相关数据。

以下是我的json格式

{"abc":[  
    { "url":"abc.json"}  
 ],  
 "bbc":[   
    {"url":"bbc.json"}  
 ]
}

我正在将键与输入的搜索词进行比较。如果它匹配,那么我需要加载与找到的密钥相关的单独的json。我能够将搜索词与键进行比较,但是当我试图获得值得到的总价值如url = abc.json时,而不是我只能获得abc.json。我的控制器代码如下

function getDetailsController($scope,$http) {  
    $scope.search = function() {  
        $http.get("searchInfo.json").success(function(response) {  
            angular.forEach(response, function(value, key) {  
                 if(angular.equals(key, $scope.searchText)){  
                    $scope.url = value;  
                    $http.get(url).success(function(response) {  
                        $scope.details = response;  
                    });  

                }
            });

        });
    };
}

我尝试过不同的方式,但我无法获得价值。你能帮我解决这个问题。

1 个答案:

答案 0 :(得分:2)

在你的JSON中,'“abc”':是一个键,它的对应值是

[{ "url":"abc.json"}]

这是一个包含单个对象的数组,该对象包含一个键:"url"

因此,要访问此网址,您只需要

value[0].url

这种结构虽然很奇怪。我真的不明白将对象包装在数组中的意义。