带有HTML内容的JSON响应

时间:2020-07-01 08:12:53

标签: javascript 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>&nbsp;</p>
<table>
<tbody>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</td>
<td>fewfewf</td>
</tr>
<tr>
<td>&nbsp;</td>
<td>&nbsp;</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>&nbsp;</p>\r\n<table>\r\n<tbody>\r\n<tr>\r\n<td>&nbsp;</td>\r\n<td>&nbsp;</td>\r\n<td>fewfewf</td>\r\n</tr>\r\n<tr>\r\n<td>&nbsp;</td>\r\n<td>&nbsp;</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的响应。

1 个答案:

答案 0 :(得分:0)

尝试一下

sellerData = sellerData.replace(/\\r\\n/g, "");

我认为这是因为\ r \ n,所以只需删除它即可。