我在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?
答案 0 :(得分:0)
我确实设法找到了一个在我的后端正确使用json的通用解决方案。我声明我的json对象是这样的角度:
$scope.dataToSend = {
"SomeAttribute" : "",
"SomeOtherAttribute" : ""
};
然后像我这样添加我的值:
$scope.dataTosend.SomeAttribute = someValue;
$scope.dataTosend.SomeOtherAttribute = someOtherValue;
不再需要使用angular.toJson()发送数据。