正确的json后端呼叫

时间:2015-08-28 07:04:25

标签: java json angularjs http post

我在POST休息呼叫的后端处理方面遇到了一些麻烦。我有两个不同的对象,在我的后端通过两种不同的POST方法更新。我将对象作为JsonNode捕获,为了解析我需要更新的属性,我创建了一个像这样的迭代器:

final Iterator<String> fieldNames = attributes.fieldNames();

当我从angular发送数据时出现问题,在一种情况下我需要像angular.toJson(数据)一样明确地发送它以便正确地获取所有字段名称,而在另一种情况下我只是发送数据(没有角度json转换)。为什么会出现这种情况?这与我如何创建$ http帖子调用有关吗?以下是角度的两个不同调用:

$http.post(URL, angular.toJson(data)).success(function(data){
 /*whatever*/ }).error(function(data) {
 /*whatever*/ });

//Second call looks like this
var promise = $http({method: 'POST', url:URL, data:data, cache:'false'});
//this one i resolve using $q.all

我将代码截断为重要的东西。我的数据目前就像这样创建(尝试多种方式以便跳过对toJson的需求):

var data = "{\"Attribute1:\"+"\""+$scope.value1+"\","+
             "\"Attribute2:\"+"\""+$scope.value2+"\"}";

我如何发送json数据以便在后端正确转换为JsonNode,这样我才能正确迭代fieldNames?

1 个答案:

答案 0 :(得分:0)

我确实设法找到了一个在我的后端正确使用json的通用解决方案。我声明我的json对象是这样的角度:

$scope.dataToSend = {
    "SomeAttribute" : "",
    "SomeOtherAttribute" : ""
};

然后像我这样添加我的值:

$scope.dataTosend.SomeAttribute = someValue;
$scope.dataTosend.SomeOtherAttribute = someOtherValue;

不再需要使用angular.toJson()发送数据。