Javascript 如何使用AngularJS读取嵌套JSON?
我正在尝试使用AngularJS读取嵌套JSON。以下是嵌套的JSON:Javascript 如何使用AngularJS读取嵌套JSON?,javascript,angularjs,json,Javascript,Angularjs,Json,我正在尝试使用AngularJS读取嵌套JSON。以下是嵌套的JSON: { "results": [ { "id": "D1", "name": "A", }, { "id": "D2", "name": "B", } ] } 以下是AngularJS控制器,它以[object]的形式从PHP获取JSON数据 当我尝试读取JSON时,它给出了一个未定义的值 function MyController($s
{
"results": [
{
"id": "D1",
"name": "A",
},
{
"id": "D2",
"name": "B",
}
]
}
以下是AngularJS控制器,它以[object]的形式从PHP获取JSON数据
当我尝试读取JSON时,它给出了一个未定义的值
function MyController($scope, $http) {
$http({
method: 'GET',
data: "action=0",
url: 'a.php'
}).then(function(data) {
alert("Hello" +data); //alerts Hello[object Object]
$scope.legs = data.results;
alert($scope.legs); //alerts undefined
});
}
试图打印JSON的html代码是:
<tr ng-repeat="l in legs">
<td>{{ l.id }}</td>
</tr>
{{l.id}
您可以检查$http在中的工作方式
您不会因为承诺而直接获得响应正文,您将获得一个包含有关HTTP请求的更多信息的对象,要获取正文或数据,您应该访问其数据
属性:
function MyController($scope, $http) {
$http({
method: 'GET',
data: "action=0",
url: 'a.php'
}).then(function(response) {
$scope.legs = response.data.results;
});
}
我假设您的服务器正确设置了JSON的响应头,以便激活响应转换。请在此处阅读$http承诺:$http 您将看到successCallback有一个参数,它是响应,而不是数据本身。响应是包含数据的对象。您需要从这个对象数据中提取JSON数据 修改此代码:
}).then(function(data) {
alert("Hello" +data); //alerts Hello[object Object]
$scope.legs = data.results;
alert($scope.legs); //alerts undefined
});
致:
您的$scope.legs现在将拥有JSON数据。ng重复应该可以正常工作。尝试
警报(“你好”,数据)代码>这样您就不会得到对象的字符串化版本,而输出是在哪里定义的?您不想在http回调中使用数据.results
?此处的输出是什么?如果您不想处理response.data,请更正变量。您可以使用。success代替。然后。这将直接向您提供数据。@Tobi已弃用了$http
传统的promise方法success
和error
。改用标准的然后方法。当我发出警报响应
时,它会发出警报[object object]
。但是,当我在上述解决方案中提醒$scope.legs
时,它会提醒undefined
,PHP代码将返回的JSON头设置为头('Content-Type:application/JSON')代码>
}).then(function(response) {
alert("Hello" + response.data);
$scope.legs = response.data.results;
alert($scope.legs);
});