首页 > 解决方案 > API 返回几个字符串转义

问题描述

我在使用返回带有多个字符串转义的 responseBody 的 API 时遇到了一些问题,这使得无法在其上使用 JSON.parse。我已经能够处理它并以某种方式使它更好地阅读它,但仍然无法使用 JSON.parse 或其他一些功能。我需要以一种可以将其读取为 JSON 的方式来处理它。

这是我的响应正文: {"options":{"host":"10.251.28.20","port":"10002","path":"/ScadaHistJson/GetData","method":"POST","headers":{"Content-Type":"application/json","Content-Length":128}},"responseBody":"{\"json\":\"[[\\\"0201013667\\\",\\\"035ET228327\\\",\\\"6707036-1\\\",201,10,\\\"\\\\\\/Date(1570724413000)\\\\\\/\\\",\\\"\\\\\\/Date(1570725591000)\\\\\\/\\\",\\\"R BELA VISTA,794,CS 05 CEP-09843120 Bairro:JARDIM DA REPRESA Cidade:SAO BERNARDO DO CAMPO\\/SP\\\",\\\"035ET228327\\\",null,\\\"N\\\",19.63,\\\"\\\\\\/Date(1570724413000)\\\\\\/\\\",\\\"\\\\\\/Date(1570726844000)\\\\\\/\\\",null,\\\"\\\\\\/Date(1570724413000)\\\\\\/\\\",\\\"\\\\\\/Date(1570724413000)\\\\\\/\\\",null,\\\"\\\\\\/Date(1570724580000)\\\\\\/\\\",\\\"\\\\\\/Date(1570724580000)\\\\\\/\\\",\\\"\\\\\\/Date(1570724640000)\\\\\\/\\\",\\\"\\\\\\/Date(1570724640000)\\\\\\/\\\",\\\"\\\\\\/Date(1570725591000)\\\\\\/\\\",0,\\\"AM003\\\",8.83]]\",\"message\":\"SUCCESS\",\"status\":0}"}

我使用 JSON.stringify(eval("(" + INSIGHT.responseBody + ")")) 结果如下:

"{\"json\":\"[[\"0201013667\",\"035ET228327\",\"6707036-1\",201,10,\"/Date(1570724413000)/\",\"/Date(1570725591000)/\",\"R BELA VISTA,794,CS 05 CEP-09843120 Bairro:JARDIM DA REPRESA Cidade:SAO BERNARDO DO CAMPO/SP\",\"035ET228327\",null,\"N\",19.63,\"/Date(1570724413000)/\",\"/Date(1570726844000)/\",null,\"/Date(1570724413000)/\",\"/Date(1570724413000)/\",null,\"/Date(1570724580000)/\",\"/Date(1570724580000)/\",\"/Date(1570724640000)/\",\"/Date(1570724640000)/\",\"/Date(1570725591000)/\",0,\"AM003\",8.83]]\",\"message\":\"SUCCESS\",\"status\":0}"

有谁知道我该如何解决这个问题?

标签: javascriptjsonstringapireturn

解决方案


实际上 responseBody 是一个有效的 json (RFC 8259)。我使用(https://jsonformatter.curiousconcept.com/)对其进行了测试。

如果您在从“json”数组属性中获取内容时遇到问题,我尝试通过以下方式双重解析 responseBody:

  const response = JSON.parse(INSIGHT.responseBody);
  const values = JSON.parse(response.json);

推荐阅读