2016-03-07 89 views
0

在Python中,我有一個JSON對象,它的字段中有一個(field3),其中包含一個json對象列表。JS + REST + NodeJS:如何解析JSON對象中的JSON列表

這個對象是從一個Python腳本傳遞到設在JS使用Express框架REST服務:

urllib.request.urlopen(
    urllib.request.Request(
    url="http://"+self.__host+_":"+self.__port+"/api"+restmethod, 
    data=urllib.parse.urlencode(objData).encode('utf8'), 
    headers=self.__headertoken,method=httpmethod) 
) 

但是,當服務器接收到的JSON自動識別field33作爲一個字符串,而不是一個JSON名單。

{ field1: '', 
    field2: '', 
    field3: '[{\'field31\': \'\', \'field32\': \'\', \'field33\':\'\',\'field34\': \'\', \'field34\': \'0.00\'}]', 
    field4: '' 
} 

所以,當我嘗試obj.field3 [0]它返回一個字符串,而不是JSON列表。

我試圖JSON.parse(string)JSON.stringify(object)但我仍然無法訪問到JSON的名單及其元素,如obj.field3.field31

我怎樣才能恢復從父JSON場JSON列表? 感謝

回答

1

field3應該是:

'[{\"field31\": \"\",...}]', 

或者乾脆:

'[{"field31": "",...}]', 

單引號時JSON.parse解析'會導致錯誤。

而且是一個數組,所以得到field31值,你應該使用:

obj.field3[0].field31

+0

感謝@yangguang。爲了完成答案,我在將字符串解析爲JSON對象之前設置了這一行代碼: var jsonlist = JSON.parse(objOrder.items.replace(/'/ g,「\」「)) – MigRome