我正在整理map[string]interface{}
并得到一个json:
{
"test": {
"test2": 123
}
}
在某些情况下,在interface{}
下,我还有另一个map[string]interface{}
有什么办法封送它并转义双引号以获取像这样的json吗?
{
"test": "{
\"test2\": 123
}"
}
答案 0 :(得分:-1)
(假设您不关心所需输出中的换行符)-一种实现方法是循环遍历地图中的每个值,然后使用标准{首先将其编组为json字符串{1}}功能。然后将这些字符串添加回原始地图(如果需要,也可以添加到新地图)。现在您已经有了一个映射,其中的值实际上是原始值的json字符串表示形式,您可以将该外部映射编组为json,编码器将为您转义值字符串中的任何双引号。 看到这个例子
json.Marshal
封装上述逻辑的更简洁的方法可能是为地图声明一个新的命名类型,并在Marshal方法中为该新类型实现自定义编组。