2015-08-28 42 views
1

我遇到了POST rest rest调用的不同后端处理的一些麻烦。我有两个不同的对象,它们通过后端的两种不同的POST方法进行更新。我赶上对象为一JsonNode,为了解析,我需要更新的属性,我创建一个迭代器,像这样:适当的json到后端post调用

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

问题是当我从角送我的数据,在一个情况下,我需要明确地发送它像angular.toJson(数据),以便正确抓住所有的字段名称,在另一种情况下,我只是发送数据(没有角度JSON转换)。为什么会发生这种行为?这是否与我创建$ http post调用有关?下面是从角的两个不同的调用:

$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

这些情况取决于数据变量的外观?例如。有时候数据是一个字符串,有时候它是一个js字典? – ShaharZ

+0

从我所看到的,即使它是一个js字典,行为也是一样的。 –

回答

0

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

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

,然后添加像这样我的价值观:

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

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