angular.toJson($ scope.object)和JSON.stringify($ scope.object)返回NULL

时间:2015-10-02 14:15:05

标签: javascript json angularjs http

所以我试着在两个不同的对象上运行angular.toJson。他们都是阵列。

然而,区别在于一个是硬编码而另一个是由$ http调用返回的。当我在硬编码数组上运行angular.toJson时,它返回我期望它返回的内容;我的数组的字符串版本,可以作为JSON对象传递给restful API函数。但是,当我在$ http调用返回的数组上运行angular.toJson时,它返回NULL。

两者的数组

所以在HTML文件中:

假设:

$scope.hardCodedArray = [{
    item1 : "",
    item2 : "",
    item3 : "",
}, {
    item1 : "",
    item2 : "",
    item3 : "",
}];

http.get("SOMEURL").success(function (response) {$scope.httpReturnedArray = response.ARRAY;});

SOMEURL的信息是:

{"ARRAY":[{
    item1 : "",
    item2 : "",
    item3 : "",
}, {
    item1 : "",
    item2 : "",
    item3 : "",
}]}

这里的踢球者是{{hardCodedArray}}和{{httpReturnedArray}}在index.html中打印时都会返回相同的内容。所以我的问题在于:

{{ angular.toJson($scope.hardCodedArray) }} 

按预期返回数组的字符串。

BUT!

{{ angular.toJson($scope.httpReturnedArray) }}

返回null。

为什么?任何帮助将非常感激。非常感谢你!

1 个答案:

答案 0 :(得分:0)

首先,你没有一个有效的json。

接下来我要说的是,您的响应中可能会错误地引用ARRAY对象。如果直接从项目中提取代码,则对象名称会发生​​大小写更改。即:$ scope.hardcodedarray& $ scope.hardCodedArray。

您可能想要检查$ scope.httpReturnedArray发生的事情。

你可以做的最好的事情就是添加一个

select * from table
where month(date_field)=if(month(curdate())-1=0,12,month(curdate())-1)
and year(date_field)=if(month(curdate())-1=0,year(curdate())-1,year(curdate()))

到您的成功函数,以确切地查看返回的内容。