前后端json序列化反序列化反斜杠无法正常传递

Posted 尚墨1111

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了前后端json序列化反序列化反斜杠无法正常传递相关的知识,希望对你有一定的参考价值。

斜杠无法传递

问题:

我希望传递给前端以下数据,同时反斜杠\\保留不被转义

test.map="ab\\-Test": "value"

操作:

// jsonString := "ab\\-Test": "value"
var configMap map[string]string
err := json.Unmarshal([]byte(jsonString), &configMap)
if err != nil 
	return nil

fmt.Printf(configMap)

输出:"ab-Test": "value",转义符消失了
换成`jsonString := "ab\\\\-Test": "value"`,报错字符串中有 - 非法字符
换成`jsonString := "ab\\\\\\-Test": "value"`,输出:"ab-Test": "value",转义符消失了

分析:

umarshal的时候会转义一次抵消了两个\\\\,所以没有了,

解决:四个转义字符

// jsonString := "ab\\\\\\\\-Test": "value"
输出:"ab\\-Test": "value",实现需求

以上是关于前后端json序列化反序列化反斜杠无法正常传递的主要内容,如果未能解决你的问题,请参考以下文章

为啥JSON字符串当中会出现反斜杠?

怎么过滤JSON数组中反斜杠“”,反序列化

具有反斜杠的 Json 序列化数据

jackson实现序列化的反序列化解析

Json.NET在返回json序列化字符串时添加反斜杠

序列化包含转义(反斜杠和双引号)的 JSON 字符串 Swift 返回格式错误的对象