golang——json的html标签转义问题

html-css024

golang——json的html标签转义问题,第1张

json的Marshal 用来对slice,map,struct等结构化类型数据转义成[]byte/string,UnMarshal方法是用来对[]byte/string转义成指定结构的interface。但在处理html标签字符中,会存在转义问题。Marshal方法默认把html标签中的'<', '>' , '&'字符转义成unicode,为强制为有效UTF-8的JSON字符串,用Unicode替换符号替换无效字节。

go doc原文

Marshal的源码

这一行encOpts{escapeHTML: true}),这里的true导致标签被转义。

针对上述问题,有两种解决办法,第一种是替换上述三个tag,第二种是SetEscapeHtml(false);

输出:

jQuery 或者 JSLite.io 简单快速的实现

var json ={

"title":"xxx",

"context":"demodemodemo",

"author":"ringotc"

}

$('

<div class="post"><h1>'+json.title+'</h1><div class="context">'+json.context+'</div><p>'+json.author+'</p></div>

').append('body')

我觉得应该是这种格式

var str1={"abc":[

{"road":"成山路"},

{"residentName":"叶小军"},

{"householder":"叶大伟"},

{"doctor":"陈天明"}]}

var str3 = str1.abc[0].road