前后端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序列化反序列化反斜杠无法正常传递的主要内容,如果未能解决你的问题,请参考以下文章