2016-04-27 23 views
2

我使用nodejs和angularjs创建项目。我有json:使用JavaScript自定义JSON数据

[{ 
    "links": [{ 
     "description": null, 
     "latency": "1", 
     "linkid": "26149e91-f6c8-47fb-a10d-691e76486871", 
     "contracts": null, 
     "tag": null, 
     "connections": [ 
      "ce00ba7c-4916-4920-a7dc-7b70daea9e7a", 
      "6d3ec325-4b27-4772-b0d9-36d4cc7b9e47" 
     ], 
     "type": "0", 
     "linkStatus": 1, 
     "bandwitdth": 799999 
    }, { 
     "description": null, 
     "latency": "1", 
     "linkid": "2f11f857-251f-4b01-9140-12abfda8d79b", 
     "contracts": null, 
     "tag": null, 
     "connections": [ 
      "bcdc3622-f0b3-4bf2-80fd-3aaee5af1c4c", 
      "ca059990-937e-4b29-8a21-615244d56689" 
     ], 
     "type": "0", 
     "linkStatus": 1, 
     "bandwitdth": 1024 
    }, { 
     "description": null, 
     "latency": "1", 
     "linkid": "7cf69528-13bc-4b90-b952-549fbbab1032", 
     "contracts": null, 
     "tag": null, 
     "connections": [ 
      "b164c679-f9d9-406d-94a8-b85b99a03bdc", 
      "616e4bce-592e-4864-b9f6-149f541fc7d1" 
     ], 
     "type": "0", 
     "linkStatus": 1, 
     "bandwitdth": 1024 
    }, { 
     "description": null, 
     "latency": "1", 
     "linkid": "d6b67215-6ca5-4f63-8573-e952c132d4af", 
     "contracts": null, 
     "tag": null, 
     "connections": [ 
      "ebe0a008-29d2-48f9-bd71-4324a0712618", 
      "bc36697a-4768-46a1-8e05-62376103b476" 
     ], 
     "type": "0", 
     "linkStatus": 1, 
     "bandwitdth": 1024 
    }, { 
     "description": "TestFlow", 
     "latency": "1", 
     "linkid": "fd73608aa8e7b440", 
     "contracts": null, 
     "tag": null, 
     "connections": [ 
      "49b33cd1-5722-4e8e-b40c-03c3407c5efe", 
      "cd354769-d52a-414e-bb7c-f0e0690ddf3b" 
     ], 
     "type": "0", 
     "linkStatus": 6, 
     "bandwitdth": 0 
    }], 
    "billing-uuid": "5f1dd7c5-c48b-44ed-be14-cf2a8730fe27" 
}] 

我需要connections在其他json。它应该是这样的:

[{ 
"conn":"49b33cd1-5722-4e8e-b40c-03c3407c5efe" 
}, 
{ 
"conn":"49b33cd1-5722-4e8e-b40c-03c3407c5efe" 
}] 

}

我的代码是这样的:

[ 
    { 
    "conn": "ce00ba7c-4916-4920-a7dc-7b70daea9e7a" 
    }, 
    { 
    "conn": "6d3ec325-4b27-4772-b0d9-36d4cc7b9e47" 
    }] 

此:

var billinData = []; 
    var connections = []; 
    for(i = 0; i < body.length; i++){ 
        billingData.push({"billing-account-uuid":body[i]['billing-uuid']}) 
        var nLinksLen = body[i].links.length; 

        for (j = 0; j < nLinksLen; j++){ 
         var nConLen = body[i].links[j].connections.length 
         console.log(nConLen) 
         for (k = 0; k < nConLen; k++){ 
          connections.push({"vportuuid": body[i].links[j].connections[k]}); 
         } 
        } 
       } 

我有一些重复的得到这与记录千元没有给出正确的结果。

我只想知道我的循环是正确的?

+0

重复记录 – angular

+0

所以,你要连接从第一JSON隔离,并将它们放置到另一个JSON? – dimlucas

+0

@dimlucas:是的。 – angular

回答

0

可以使用forEachreduce阵列的方法来轻松解决这个:

var obj= JSON.parse(...); 

var connections=obj.links.reduce(function (array,elem) { 
    elem.connections.forEach(function (conn) { 
    array.push({'conn': conn}); 
    } 
    return array; 
},[]);