2017-09-25 47 views
-1

我接收到一個巨大的json對象,我只需要從它獲取兩個屬性。從大的json對象獲取某些屬性

的JSON就這樣產生了

"{\r\n\"d\" : [\r\n{\r\n\"__metadata\": {\r\n\"uri\": \"http:\/\/xx.xx.xx\/AciApi.svc\/Port_Domestic(1191)\", \"type\": \"ACIModel.Port_Domestic\"\r\n}, \"PortID\": 1191, \"PortName\": \"PORTLAND\"\r\n}, {\r\n\"__metadata\": {\r\n\"uri\": \"http:\/\/xx.xx.xx\/AciApi.svc\/Port_Domestic(1192)\", \"type\": \"ACIModel.Port_Domestic\"\r\n}, \"PortID\": 1192, \"PortName\": \"BANGOR\"\r\n}, {\r\n\"__metadata\": {\r\n\"uri\": \"http:\/\/xx.xx.xx\/AciApi.svc\/Port_Domestic(1193)\", \"type\": \"ACIModel.Port_Domestic\"\r\n}, \"PortID\": 1193, \"PortName\": \"LUBEC\"\r\n}, {\r\n\"__metadata\": {\r\n\"uri\":.... 

我只需要PORTNAME和端口ID是這樣

0:{portCode:"",portName:""}, 
1:{portCode:"",portName:""}, 
... 

回答

0

var jsonString = "{\r\n\"d\" : [\r\n{\r\n\"__metadata\": {\r\n\"uri\": \"http:\/\/xx.xx.xx\/AciApi.svc\/Port_Domestic(1191)\", \"type\": \"ACIModel.Port_Domestic\"\r\n}, \"PortID\": 1191, \"PortName\": \"PORTLAND\"\r\n}, {\r\n\"__metadata\": {\r\n\"uri\": \"http:\/\/xx.xx.xx\/AciApi.svc\/Port_Domestic(1192)\", \"type\": \"ACIModel.Port_Domestic\"\r\n}, \"PortID\": 1192, \"PortName\": \"BANGOR\"\r\n}, {\r\n\"__metadata\": {\r\n\"uri\": \"http:\/\/xx.xx.xx\/AciApi.svc\/Port_Domestic(1193)\", \"type\": \"ACIModel.Port_Domestic\"\r\n}, \"PortID\": 1193, \"PortName\": \"LUBEC\"\r\n}]}" 
 

 
var jsonArray = JSON.parse(jsonString).d; 
 

 
var arrayOfObjectsWithOnlyThose2Properties = jsonArray.map(function(item){ 
 
    return { 
 
    "portCode": item.PortCode, 
 
    "portName": item.PortName 
 
    } 
 
}); 
 
    
 
console.log(arrayOfObjectsWithOnlyThose2Properties);

+0

這讓我這個錯誤 SyntaxError:Unexpected token'in JSON at position 11576 at JSON.parse()你知道爲什麼嗎? –

+0

在這一點上,我們將不得不看到你的完整的JSON字符串,在帖子中的那個不是那麼長。 –

+0

完整的json在script.js中[here](https://embed.plnkr.co/99tdpV/)@Dan_D –