【问题标题】:API returning several string escapesAPI 返回几个字符串转义
【发布时间】:2019-12-04 15:37:11
【问题描述】:

我在使用返回带有多个字符串转义的 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}"

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

【问题讨论】:

    标签: javascript json string api return


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多