JSon如何解析特殊字符?

时间:2019-05-30 11:47:36

标签: javascript json

这是我在数据库中的文字:

"推奨切削条件 "

在PHP中,我使用Json_encode: 结果:

{"table1":[{"Item":{"original_text":"\u63a8\u5968\u5207\u524a\u6761\u4ef6 \b"}}]};

在javascript中:

var strData ='{"table1":[{"Item":{"original_text":"\u63a8\u5968\u5207\u524a\u6761\u4ef6 \b"}}]}';//getData();
strData=strData.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t");      
var jsonData = JSON.parse(strData)

错误:

Uncaught SyntaxError: Unexpected token  in JSON at position 56
    at JSON.parse (<anonymous>)

enter image description here 如何用特殊字符解析JSon?

谢谢。

3 个答案:

答案 0 :(得分:2)

  

我必须将json复制到js

我不知道为什么,但是好吧……您根本不需要在Javascript中将其作为JSON字符串处理。 JSON是有效的Javascript文字。因此,只需将JSON粘贴到Javascript 中而不加引号

var data = {"table1":[{"Item":{"original_text":"\u63a8\u5968\u5207\u524a\u6761\u4ef6 \b"}}]};

这是一个完全有效的Javascript对象文字,不需要解析。

如果您需要一个包含JSON字符串的有效Javascript字符串文字,请json_encode(json_encode(...))对其进行两次以获取:

var strData = "{\"table1\":\"\\u63a8\\u5968\\u5207\\u524a\\u6761\\u4ef6 \\b\"}";
console.log(JSON.parse(strData));

答案 1 :(得分:-1)

您可以尝试使用

var strData ='{"table1":[{"Item":{"original_text":"\u63a8\u5968\u5207\u524a\u6761\u4ef6 \b"}}]}';

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

// Your code
// var jsonData = JSON.parse(strData);

var jsonData = JSON.parse(JSON.stringify(strData));

console.log(JSON.parse(JSON.stringify(jsonData)));

答案 2 :(得分:-4)

请将\ b替换为“” strData = strData.replace(“ \ b”,“”);

<script>
    var strData ='{"table1":[{"Item":{"original_text":"\u63a8\u5968\u5207\u524a\u6761\u4ef6 \b"}}]}';
   strData=strData.replace(/\n/g, "\\n").replace(/\r/g, "\\r").replace(/\t/g, "\\t");   
   strData=strData.replace("\b","");
   document.write(strData); 
   var jsonData = JSON.parse(strData)
   document.write(jsonData);