2016-05-06 42 views
0

我想创建以下格式的JSON字符串使用AngularJS如下:创建于AngularJS JSON字符串

{ 
    "userid": 100, 
    "fleetid": 506, 
    "comments": "This is a test comment", 
    "fleetcheckdate": "29/10/1976", 
    "options": [{ 
     "fleetcheckid": "1", 
     "fleetcheckvalueid": "1" 
    }, { 
     "fleetcheckid": "2", 
     "fleetcheckvalueid": "1" 
    }, { 
     "fleetcheckid": "3", 
     "fleetcheckvalueid": "1" 
    }] 
} 

  • “用户id”
  • “fleetid”
  • “意见”
  • “fleetcheckdate”

都是我知道的单独的值。

对于“选项”我具有存储的值“fleetcheckid”“fleetcheckvalueid”多维数组,创建如下:

$scope.selectedRadioArray = []; 

$scope.doSomething = function(fleetCheckItemID, fleetCheckID) 
{ 
    $scope.selectedIDS = [fleetCheckItemID, fleetCheckID]; 
    $scope.selectedRadioArray.push($scope.selectedIDS); 
    console.log("Array: " + $scope.selectedRadioArray); // Prints e.g. 4,3,8,6,34,8 
} 

中的doSomething()每次用户与按钮交互时都会触发该方法,并生成“fleetcheckid”和“fleetcheckvalueid”的2个值。在上面的例子中,用户点击了3次按钮。该按钮可以被点击任意次数。

如何根据我可以通过$ http.post()发送给我的数据库的示例将上述信息转换为JSON字符串?

+0

** JSON是不是一个对象。 JSON是STRING。** –

+2

@Gothdo看到这个https://en.wikipedia.org/wiki/JSON –

+0

@SSH'JSON是一种数据格式.'所以你不能拥有一个JSON对象。你可以有一个字符串,它包含JSON格式的数据(一个JSON字符串),或者一个JavaScript对象。 –

回答

0

可以在$http someething使用这样

$http({ 
     url: uri, 
     method: 'post', 
     data: angular.toJson(categoria), 
     headers: { 
      'Authorization': 'Bearer ' + token.data.access_token, 
      'Content-type': 'application/json' 
     } 
    }).then(function successCallback(response) { 
     datosRecu = response; 
     deferred.resolve(datosRecu); 
    }, function errorCallback(response) { 
     datosRecu = response; 
     deferred.resolve(datosRecu); 
    }); 

in this case `angularToJson` convert it on a JSON and send it in the body 
+0

如何在你的例子中创建** categoria **,但是我的问题是传递给angular.toJson()? – heyred

+0

那就是你经过我的情况下,参数正常的对象将是 '$承诺= service.add(categoria);该categoria被接受' 的$ HTTP,并用它在'angularToJson' –

1

当通过$http将信息发送到服务器上,它通常是使用JSON是一个好主意。不要将其转换为字符串。

简单地格式化您的有效载荷是这样的:

var payload = { 
    userId: $scope.userId, 
    /* etc.... */ 
    options: $scope.optionsArray 
}; 

然后发送到服务器时,这样做:

$http.post('path/to/api', payload, { headers: { /* etc... */ }}).then(successCallback).catch(errorCallback); 
+0

若要翻译我的例子,我如何实际添加我的$ scope.selectedRadioArray中的项目数组到我的“选项”:[{...]}值?我不能把一个forEach()循环放在var payload =变量中? – heyred