javascript - 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}"
有谁知道我该如何解决这个问题?
解决方案
实际上 responseBody 是一个有效的 json (RFC 8259)。我使用(https://jsonformatter.curiousconcept.com/)对其进行了测试。
如果您在从“json”数组属性中获取内容时遇到问题,我尝试通过以下方式双重解析 responseBody:
const response = JSON.parse(INSIGHT.responseBody);
const values = JSON.parse(response.json);
推荐阅读
- apache - NiFi 定制处理器在一段时间后不会发布数据到下一个处理器
- c# - 使用 XPath 或 XSLT 从 XML 中排除特定元素
- youtube - YouTube Data API v3 - 类别列表中的 categoryId 问题
- node.js - 得到一个非对象结果,期望来自 create Zapier 的对象?
- reactjs - 如何修复“throw er; //未处理的'错误'事件”?
- sql - 如何使用 SQL 显示具有类别的产品数量
- php - php无法上传csv文件时如何找出错误?
- postgresql - 如何在 PostgreSQL 中缓存重复查询
- javascript - 每次渲染组件时如何将新项目存储在数组中?
- php - PHPMailer拒绝发送没有附件的电子邮件