我有以下请求正文,我需要将其解析为 json。我需要将一个payload
字段(这是一个包含很多垃圾的 json)解析为正确的 JSON 对象(它是 的结果console.log(req)
):
{ payload: '{\\n \\"taskDueDate\\": \\"No due\\",\\n \\"oldTaskMilestone\\": null,\\n \\"isUpdatedTask\\": \\"true\\",\\n \\"oldTaskAssignee\\": null,\\n \\"statusType\\": \\"OPEN\\",\\n \\"oldTaskVisibility\\": null,\\n \\"isEstimationUpdated\\": \\"false\\",\\n \\"invokerEmail\\": \\"mike@domain\\",\\n \\"oldTaskStatus\\": \\"Resolved\\",\\n \\"projectId\\": \\"61193\\",\\n \\"taskContent\\": \\"Add god to monit background processes\\",\\n \\"taskAssignee\\": \\"Mike B.\\",\\n \\"invokerId\\": \\"38073\\",\\n \\"isLabelsUpdated\\": \\"false\\",\\n \\"taskLabels\\": \\"Improvement\\",\\n \\"isAssignmentUpdated\\": \\"false\\",\\n \\"oldTaskEstimation\\": null,\\n \\"isVisibilityUpdated\\": \\"false\\",\\n \\"isStatusUpdated\\": \\"true\\",\\n \\"isMilestoneUpdated\\": \\"false\\",\\n \\"domain\\": \\"xxx\\",\\n \\"invokerSmallAvatarURL\\": \\"xxx\\",\\n \\"invoker\\": \\"Mike B.\\",\\n \\"taskId\\": \\"33\\",\\n \\"accountURL\\": \\"xx\\",\\n \\"taskAuthor\\": \\"Mike B.\\",\\n \\"isTimeEntryAdded\\": \\"false\\",\\n \\"unsubscribeURL\\": \\"xxx\\",\\n \\"oldTaskPriority\\": null,\\n \\"oldTaskDueDate\\": null,\\n \\"projectURL\\": \\"xxx\\",\\n \\"taskMilestone\\": \\"Not planned\\",\\n \\"taskPriority\\": \\"HIGH\\",\\n \\"taskTitle\\": \\"Start using god gem\\",\\n \\"oldTaskLabels\\": null,\\n \\"isPriorityUpdated\\": \\"false\\",\\n \\"taskURL\\": \\"xxx\\",\\n \\"taskStatus\\": \\"Open\\",\\n \\"subdomain\\": \\"xx\\",\\n \\"invokerProfileURL\\": \\"xx\\",\\n \\"statusLabel\\": \\"reopened\\",\\n \\"taskEstimation\\": \\"Not estimated\\",\\n \\"isNewTask\\": \\"false\\",\\n \\"isAttachmentsUpdated\\": \\"false\\",\\n \\"projectName\\": \\"xx\\",\\n \\"taskVisibility\\": \\"ALL\\",\\n \\"isDueDateUpdated\\": \\"false\\"\\n}' }
为此,我使用以下代码:
payload = req.body['payload']
JSON.parse(payload)
这样的代码给了我一个错误:
Syntax error: unexpected token \
有趣的是,当我将payload
var 的内容转储到控制台并使用 Chrome 开发控制台将其传递时JSON.parse(my_copied_json_string)
,它工作得很好。
你能告诉我为什么会这样吗?我能做些什么来理解和解决这个奇怪的问题?
JSFiddle 演示该问题:http: //jsfiddle.net/7PZD9/5/