javascript - 带有 HTML 内容的 JSON 响应
问题描述
我正在咨询一个返回 JSON 对象且其中一个值格式错误的 API。它包含 \r 和 \n,当我尝试对其进行 JSON.parse 时,它给了我一个错误。我试过用 JSON.stringify 把它变成一个字符串并替换 \r 和 \n 但没有运气,它确实删除了字符但是当我尝试再次解析它时它不起作用。
回复
{
"seller_store_name": "test",
"seller_store_description": "<blockquote>
<p>ewffwewef</p>
<p>wefwef</p>
<p> </p>
<table>
<tbody>
<tr>
<td> </td>
<td> </td>
<td>fewfewf</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td>efwfewf</td>
</tr>
</tbody>
</table>
</blockquote>",
"seller_profile_picture":"",
"seller_profile_picture_default": "https://test.com/",
"seller_banner": "",
"seller_banner_default": "https://test.com/"
}
尝试1,转成字符串,去掉\r和\n字符
sellerData = JSON.stringify(e);
" {\n \"seller_store_name\": \"test\",\n \"seller_store_description\": \"<blockquote>\r\n<p>ewffwewef</p>\r\n<p>wefwef</p>\r\n<p> </p>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td> </td>\r\n<td> </td>\r\n<td>fewfewf</td>\r\n</tr>\r\n<tr>\r\n<td> </td>\r\n<td> </td>\r\n<td>efwfewf</td>\r\n</tr>\r\n</tbody>\r\n</table>\r\n</blockquote>\",\n \"seller_profile_picture\":\"\",\n \"seller_profile_picture_default\": \"https://test.com\",\n \"seller_banner\": \"\",\n \"seller_banner_default\": \"https://test.com\"\n }\n "
sellerData = sellerData.replace(/\\r/g,"").replace(/\\n/g,"");
sellerData = JSON.parse(sellerData);
这成功地删除了字符,但是当我再次尝试解析数据时,它并没有变成一个对象,它仍然是一个字符串。
尝试2,基本解析当我尝试解析它时,它给了我一个错误
sellerData = JSON.parse(String(e));
Unexpected token in JSON at position 126
任何帮助,将不胜感激。不幸的是,我无法修改来自 API 的响应。
解决方案
尝试这个
sellerData = sellerData.replace(/\\r\\n/g, "");
我认为这是因为 \r\n,所以应该删除它。
推荐阅读
- c# - 理解和解析 FABMaster ASCII 传输格式 (.fatf) 文件
- javascript - 在图像上绘制点和线并确定倾斜度
- jsf - PrimeFaces 关于数据表中的过滤值的警告不再出现(7.0 版)
- forms - 通过 MS-Access 中的内部联接拉取表单和子表单数据
- python - 是说 /dev/xdva1 不存在?
- php - 如何在数组中检索与查询关联的其他值?
- sql-server - 在 SSMS 中,用户名后面括号中的数字是多少?
- javascript - ReferenceError:文档未使用 nodeJS 定义
- reactjs - 如何在 React.js 中添加到图像的路由
- python - 归并排序python实现方法论