许虎虎 开发者工具集
JSON 转义

JSON转义(JSON Escape) 是指将JSON数据中的特殊字符进行转义,使其符合JSON格式规范。JSON数据中有一些字符是保留字符(如双引号、反斜杠、控制字符等),它们不能直接出现在JSON数据中,否则会引发解析错误。通过转义这些特殊字符,可以确保JSON数据能够被正确解析和传输。

JSON转义的常见场景:
双引号:JSON字符串必须由双引号(")包围,内部如果有双引号,需要进行转义。
反斜杠:反斜杠(\)用于转义特殊字符,如果需要在字符串中表示反斜杠本身,必须使用两个反斜杠(\\)。
控制字符:例如换行符、回车符、制表符等,这些需要进行转义以保持JSON的正确性。
Unicode字符:一些非ASCII字符(如中文、表情符号)需要转义为Unicode编码格式。
常见的JSON转义字符:
\" — 双引号
\\ — 反斜杠
\/ — 正斜杠(虽然正斜杠不需要转义,但可以转义)
\b — 退格符(Backspace)
\f — 换页符(Form feed)
\n — 换行符(Newline)
\r — 回车符(Carriage return)
\t — 制表符(Tab)
\u — 后跟四位十六进制数表示Unicode字符
示例:JSON转义前后对比
1. 带有双引号的字符串
原始字符串:

json

{
"quote": "She said, "Hello""
}
转义后:

json

{
"quote": "She said, \"Hello\""
}
2. 带有反斜杠的字符串
原始字符串:

json

{
"path": "C:\Program Files\MyApp"
}
转义后:

json

{
"path": "C:\\Program Files\\MyApp"
}
3. 包含控制字符的字符串
原始字符串:

json

{
"message": "Hello\nWorld"
}
转义后:

json

{
"message": "Hello\\nWorld"
}
4. 包含Unicode字符的字符串
原始字符串:

json

{
"emoji": "😊"
}
转义后:

json

{
"emoji": "\uD83D\uDE0A"
}
如何实现JSON转义:
1. 使用JavaScript进行JSON转义
JavaScript提供了JSON.stringify()方法来自动将JSON对象转换为符合JSON格式规范的字符串,该方法会自动处理转义字符。

javascript

const data = {
quote: 'She said, "Hello"',
path: 'C:\\Program Files\\MyApp',
message: 'Hello\nWorld',
emoji: '😊'
};

const jsonString = JSON.stringify(data);
console.log(jsonString);
输出:

json

{
"quote": "She said, \"Hello\"",
"path": "C:\\Program Files\\MyApp",
"message": "Hello\\nWorld",
"emoji": "\uD83D\uDE0A"
}
2. 使用Python进行JSON转义
Python中的json模块也提供了类似的功能,使用json.dumps()方法将字典对象转为JSON字符串,并自动进行转义。

python

import json

data = {
"quote": 'She said, "Hello"',
"path": 'C:\\Program Files\\MyApp',
"message": 'Hello\nWorld',
"emoji": '😊'
}

json_string = json.dumps(data)
print(json_string)
输出:

json

{
"quote": "She said, \"Hello\"",
"path": "C:\\Program Files\\MyApp",
"message": "Hello\\nWorld",
"emoji": "\uD83D\uDE0A"
}
3. 使用在线工具进行JSON转义
如果你不想手动处理转义字符,许多在线工具可以帮助你快速转换和转义JSON数据。例如:

JSON Escape Online Tool: 可以将JSON中的特殊字符转义为合法的JSON格式。
总结:
JSON数据中的特殊字符(如双引号、反斜杠、控制字符等)需要转义,以确保数据可以正确地解析。
JavaScript和Python等编程语言中的 JSON.stringify() 和 json.dumps() 方法会自动处理转义问题。
转义字符通常包括 \"、\\、\n、\r 等,也可以使用Unicode(\u)表示非ASCII字符。
使用在线工具也可以快速进行JSON转义。