2016-06-15 8 views
2

$scope.addUserJson = $scope.adduser;AngularJS Zusammenführen von zwei JSON Antwort

console.log($scope.addUserJson);

Ausgabe

Object {"username":"Mik911","firstname":"Mike","lastname":"Angel","email":"[email protected]"}

$scope.usergroup = $scope.usergroupmodel;

console.log($scope.usergroup);

Ausgabe

[Object{"grpid":"1","username":"Vikram911","firstname":"Vikram","lastname":"Doe","email":"[email protected]","gender":"Male", "description":"BLAH BLAH","phone":"5858585"},{"grpid":"2","username":"Varun091","firstname":"Varun","lastname":"Doe", "email":"[email protected]","gender":"Male","description":"BLAH BLAH","phone":"898989"}]

Verschmelzen zweier Objekte

$scope.object = angular.toJson(angular.merge({}, $scope.usergroup, $scope.addUserJson));

console.log($scope.object);

Ausgabe

[{"grpid":"1","username":"Vikram911","firstname":"Vikram","lastname":"Doe","email":"[email protected]","gender":"Male", "description":"BLAH BLAH","phone":"5858585"},{"grpid":"2","username":"Varun091","firstname":"Varun","lastname":"Doe", "email":"[email protected]","gender":"Male","description":"BLAH BLAH","phone":"898989"}]

Wie fusionieren ich über zwei json Antwort, so dass es das Endergebnis wie bilden sollte unter

{"username":"Mik911","firstname":"Mike","lastname":"Angel","email":"[email protected]","grpid":["1,2"]}

+2

Sie sind ein Array mit einem Objekt verschmelzen - Sie kann das nicht tun. Sie müssen das manuell tun. –

+0

sollten Sie auf unsere Antworten antworten .. –

Antwort

0

Sie können nicht nur mit Array-Objekt verschmelzen oder nur ein Feld in der Zusammenführung erhalten .

Sie können grpid des addUserJson Objekt manuell in einer einzelnen Zeile, Funktion JS Array Karte:

$scope.addUserJson.grpid = $scope.usergroup.map(function(grp) { return grp.grpid; }); 
+0

Wie mache ich es wie '" listGroups ": [ {" id ":" 2 "}, {" id ":" 3 "} ]' mit der obigen Kartenfunktion – Slimshadddyyy

+0

Anstatt grp.grpid in der Kartenfunktion zurückzugeben, gebe {id: grp.grpid} zurück –

0

Ich habe es ein bisschen mehr verwendbar durch die $scope.addUserJson Berücksichtigung ein Array zu sein ...

Wenn es nie ein Array sein wird, benachrichtigen Sie mich, damit ich es wieder zu einem einzigen JSON-Objekt ändern kann.

var app = angular.module('myApp',[]); 
 

 
\t app.controller('myCtrl',function($scope){ 
 
\t \t 
 
\t \t $scope.usergroup = [{"grpid":"1","username":"Vikram911","firstname":"Vikram","lastname":"Doe","email":"[email protected]","gender":"Male", 
 
\t \t "description":"BLAH BLAH","phone":"5858585"},{"grpid":"2","username":"Varun091","firstname":"Varun","lastname":"Doe", 
 
\t \t "email":"[email protected]","gender":"Male","description":"BLAH BLAH","phone":"898989"}] 
 

 

 
\t \t $scope.addUserJson = [{"username":"Mik911","firstname":"Mike","lastname":"Angel","email":"[email protected]"}]; 
 
\t \t var result = []; 
 

 
\t \t // console.log($scope.usergroup); 
 
\t \t for(x in $scope.addUserJson){ 
 
\t \t \t // console.log($scope.addUserJson.username +"=="+ $scope.usergroup[x].username); 
 
\t \t \t var temp=[]; 
 
\t \t \t for(y in $scope.usergroup){ 
 

 
\t \t \t \t if($scope.addUserJson[x].username.localeCompare($scope.usergroup[y].username)){ 
 
\t \t \t \t \t temp.push($scope.usergroup[y].grpid); 
 
\t \t \t \t } 
 
\t \t \t } 
 
\t \t \t if(temp.length>0){ 
 
\t \t \t \t var result1 = $scope.addUserJson; 
 
\t \t \t \t result1[0].grpid = temp; 
 
\t \t \t \t result = result1[0]; 
 
\t \t \t \t temp=[]; 
 
\t \t \t } 
 
\t \t } 
 

 

 
\t \t console.log(result); 
 

 

 
\t });
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script> 
 
<body ng-app="myApp" ng-controller="myCtrl"> 
 
</body>

Verwandte Themen