JS + REST + NodeJS:如何从JSON对象解析JSON列表

时间:2016-03-07 03:19:23

标签: javascript python json rest express

在Python中我有一个JSON对象,在其字段中有一个( field3 ),其中包含一个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 个答案:

答案 0 :(得分:1)

field3应该是:

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

或简单地说:

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

单引号'在JSON.parse解析时会导致错误。

并且obj.field3是一个数组,因此要获得field31值,您应该使用:

obj.field3[0].field31