JSON传参是很常见的一种数据传输方式,在Web开发中相当普遍。但是如果使用JSON传参时,参数中含有特殊符号,则需要特别处理,否则会出现一些意想不到的问题。
{ "name": "张三", "age": 18, "content": "这是一段包含特殊符号(&、、'、\")的内容!" }
上述JSON中的content字段中含有特殊符号,如果直接传输,接收方可能会把它们解释成其他的意义,导致传输错误或安全问题。
那么,在传输JSON中含有特殊字符的参数时,应该怎么做呢?
- 使用转义字符
- 使用BASE64编码
特殊字符都有对应的转义字符,例如 & 要用 & 表示,< 要用 < 表示,> 要用 > 表示,' 要用 ' 表示,"要用 " 表示。因此,将上述JSON中的content字段修改如下,即可避免特殊字符带来的问题。
{ "name": "张三", "age": 18, "content": "这是一段包含特殊符号(&、<、>、'、")的内容!" }
将参数值 BASE64 编码后,再进行传输。接收方在解析数据时需要先将编码还原成字符串,才能进行后续操作。这种方式虽然会增加数据量,但其可读性更强,也更容易被普通人理解。
{ "name": "张三", "age": 18, "content": "5Lq655+8NOS6i+i5suiA6JmV5paH76S+6IeqMTIz4oCd" }