Gson在转换到Android时再次逃离了转义序列



我正在尝试向服务器发送一个html字符串。我拥有的html:

val htmlInput = "<div>ansi nmasbnmbsanbdmnsbmndbsanbdnbsand<br></div><div><span class="size" style="font-size: 16px">ggsgjfgjfdgfgdg</span><br></div><div><br></div><div><span class="size" style="font-size: 16px">fgsdgfd</span><br></div><div><br></div><div><br></div><div><ul><li>fgsfgdf<br></li></ul><div><br></div><div><ol><li>fgdsg<br></li><li>sdfgsd<br></li><li>sfgs<br></li><li>sdfg<br></li><li>gfdsffgf<br></li></ol><div><br></div><blockquote style="background-color: rgb(245, 245, 245); padding: 7px; border: 1px solid rgb(204, 204, 204);"><div><div><span class="colour" style="color:rgba(57, 229, 0, 2.6)"><span class="highlight" style="background-color:rgba(255, 64, 0, 2.6)">jfkdsfsdfsfsdfs</span></span><br></div></div></blockquote></div><div><br></div><div>ajjfajfjajfjf<br></div><div><br></div><table border="1" cellpadding="2" cellspacing="2" style="width: 100%;"><tbody><tr><td>afafsadfasfdsa</td><td>ddadasdadadasd</td></tr><tr><td>adadasdasd</td><td>asdadadasdasda</td></tr></tbody></table><div><br></div><div><br></div></div><div><br></div>"

现在我正在尝试使用类似于的gson构建输入json

val inputData = mapOf("input" to htmlInput)
val gson = GsonBuilder().disableHtmlEscaping().create()
val inputDataString = gson.toJson(inputData)

现在,从上面的代码中获得的inputDataString类似于,

{ "input" : "<div>ansi nmasbnmbsanbdmnsbmndbsanbdnbsand<br></div><div><span class=\"size\" style=\"font-size: 16px\">ggsgjfgjfdgfgdg</span><br></div><div><br></div><div><span class=\"size\" style=\"font-size: 16px\">fgsdgfd</span><br></div><div><br></div><div><br></div><div><ul><li>fgsfgdf<br></li></ul><div><br></div><div><ol><li>fgdsg<br></li><li>sdfgsd<br></li><li>sfgs<br></li><li>sdfg<br></li><li>gfdsffgf<br></li></ol><div><br></div><blockquote style=\"background-color: rgb(245, 245, 245); padding: 7px; border: 1px solid rgb(204, 204, 204);\"><div><div><span class=\"colour\" style=\"color:rgba(57, 229, 0, 2.6)\"><span class=\"highlight\" style=\"background-color:rgba(255, 64, 0, 2.6)\">jfkdsfsdfsfsdfs</span></span><br></div></div></blockquote></div><div><br></div><div>ajjfajfjajfjf<br></div><div><br></div><table border=\"1\" cellpadding=\"2\" cellspacing=\"2\" style=\"width: 100%;\"><tbody><tr><td>afafsadfasfdsa</td><td>ddadasdadadasd</td></tr><tr><td>adadasdasd</td><td>asdadadasdasda</td></tr></tbody></table><div><br></div><div><br></div></div><div><br></div>" }

我不明白为什么Gson会进一步逃离正确逃脱的字符串。建议我必须更改哪些内容才能使上述代码正常工作。

提前感谢。

好吧,一切都很好,如果我们将引号保留为",JSON格式将被破坏,比如:

{
"a" : ""b"
}

但是有反斜杠保护(转义字符("""是可以的:

{
"a": ""b"
}

我正在尝试向服务器发送一个html字符串。

如果请求有"content-type", "application/json",服务器端应该处理它

关于disableHtmlEscaping:

默认情况下,Gson转义HTML字符,如<gt;等。使用此选项配置Gson以按原样通过HTML字符。

最新更新