我正在咨询一个返回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的响应。
答案 0 :(得分:0)
尝试一下
sellerData = sellerData.replace(/\\r\\n/g, "");
我认为这是因为\ r \ n,所以只需删除它即可。