我想检查json数据是否为空。
如果json为空,我想提醒orders Not Found
。
如果它不为空,我想提醒orders found
。
如果用户未登录,则其本地存储中不会有任何令牌。因此,当浏览器请求API URL时,他将收到500错误。然后我想提醒failed
以及failed status reason
我的开发生病了,所以试了试我的自己。它不太顺利。
尝试下面的代码,完全没有工作。
<script>
$http.get("http://localhost.com/activeorders/?format=json",{
headers: {'Authorization': 'Token '+ localStorage.getItem("token")}})
.success(function(response) {
if(response=="[]")
{
alert(" orders NOT found");
}
else
{
alert("orders found");
}
.error(function(response,status) {
alert("failed");
alert(status);
}
return ;
});
</script>
任何帮助都会感激不尽。
答案 0 :(得分:2)
例如,如果要检查JS对象或JSON是否为空({}
),则对象为response
:
Object.keys(response).length === 0 && response.constructor === Object
答案 1 :(得分:2)
如果您尝试使用 Angular js ,那么您可以使用回调尝试以下代码:
$http({
method: 'GET',
url: 'http://localhost.com/activeorders/?format=json',
headers: {
'Authorization': 'Token '+ localStorage.getItem('token')
}
}).then(function successCallback(response){ // this callback will be called asynchronously when the response is available
if (response.data.length == 0){
console.log("orders NOT found")
}
// or if you just return an array json by php for example
//if (response.length == 0) {
//console.log("orders NOT found")
//}
}, function errorCallback(response){ // called asynchronously if an error occurs or server returns response with an error status.
if (response){
alert("failed");
}
});
如果您使用的是外部文件.json类型,则可以尝试:
menuApp.controller("dynamicMenuController", function($scope, $http) {
$http.get('config/menu.json').success(function(data) {
console.log("success!");
if(data.length == 0){
alert('empty');
}
else {alert('some here!')}
});
如果您的json位于另一个域中,则为外部域。在这种情况下,我建议你看一下JSONP,这里有一个例子http://fdietz.github.io/recipes-with-angular-js//consuming-external-services/consuming-jsonp-apis.html:
$http.jsonp('http://teckstack.com/api/get_recent_posts/?callback=JSON_CALLBACK').success(function (data) {
console.log("success callback");
if(data.length == 0){
alert('empty');
} // response data
}).error(function (data) {
console.log("failed callback");
});
答案 2 :(得分:0)
尝试
if( Object.keys(JSON.parse(response)).length == 0 ){
alert("err")
}