【发布时间】:2017-07-12 02:06:56
【问题描述】:
我很难让这个字符串可解析。这似乎是一个简单的任务,但它让我发疯。 Infusionsoft 将此作为它们的其余钩子有效负载返回,因此我无法更改它的接收方式。
JSON.parse() 不起作用,我不能将它作为对象文字使用,因为时间戳没有引号。有没有一种方法或方式我只是看不到解析这个,所以我可以很容易地得到每个 id 用一个 for 循环作为例子?
[{id:1049105, api_url:'', timestamp: 2017-07-12T00:34:36.000Z},{id:993221, api_url:'', timestamp: 2017-07-12T00:34:18.000Z}]
任何帮助将不胜感激。
【问题讨论】:
-
这根本不是有效的 JSON,属性都应该有引号才有效。
-
您是否要解析整个内容?能说清楚一点吗?
-
我感觉您从 API 获得了有效的 JSON,但它已经被解析了。例如,如果您使用
jQuery.ajax并指定了json数据类型来将请求发送到服务器。在这种情况下,您可能已将解析对象的日志输出粘贴到您的问题中。如果发生这种情况,那么您根本不需要JSON.parse()。如果不是这种情况,我建议您粘贴代码示例,以便更容易看到您在做什么。 -
@Marconius 我很确定它是以字符串形式出现的,而不是解析的 JSON。当 webhook 进入时,初始负载被 bodyparser 解析为 JSON,我得到这个负载:
{ event_key: 'contact.edit', object_type: 'contact', object_key: '[{id:1057781, api_url:\'\', timestamp: 2017-07-11T19:24:41.000Z},{id:1035169, api_url:\'\', timestamp: 2017-07-11T19:23:56.000Z}]', api_url: '' }如您所见,object_key表示为字符串。我试过用 JSON.parse 解析那部分,但它会返回一个错误。
标签: javascript json node.js infusionsoft