好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > golang json.Marshal 特殊html字符被轉義的解決方法

golang json.Marshal 特殊html字符被轉義的解決方法

熱門標簽:江西轉化率高的羿智云外呼系統 學海導航地圖標注 中國地圖標注省會高清 南通如皋申請開通400電話 廣州呼叫中心外呼系統 西部云谷一期地圖標注 地圖標注的汽車標 浙江高速公路地圖標注 高德地圖標注口訣

go語言提供了json的編解碼包,json字符串作為參數值傳輸時發現,json.Marshal生成json特殊字符、>、會被轉義。

type Test struct {
  Content   string
}
func main() {
  t := new(Test)
  t.Content = "http://www.baidu.com?id=123test=1"
  jsonByte, _ := json.Marshal(t)
  fmt.Println(string(jsonByte))
}
{"Content":"http://www.baidu.com?id=123\u0026test=1"}
Process finished with exit code 0

GoDoc描述

String values encode as JSON strings coerced to valid UTF-8,

replacing invalid bytes with the Unicode replacement rune.

The angle brackets “” and “>” are escaped to “\u003c” and “\u003e”

to keep some browsers from misinterpreting JSON output as HTML.

Ampersand “” is also escaped to “\u0026” for the same reason.

This escaping can be disabled using an Encoder that had SetEscapeHTML(false) alled on it.

json.Marshal 默認 escapeHtml 為true,會轉義 、>、

func Marshal(v interface{}) ([]byte, error) {
  e := encodeState{}
  err := e.marshal(v, encOpts{escapeHTML: true})
  if err != nil {
    return nil, err
  }
  return e.Bytes(), nil
}

解決方案

方法一:

content = strings.Replace(content, "\\u003c", "", -1)
content = strings.Replace(content, "\\u003e", ">", -1)
content = strings.Replace(content, "\\u0026", "", -1)

這種方式比較直接,硬性字符串替換。比較憨厚

方法二:

文檔中寫到This escaping can be disabled using an Encoder that had SetEscapeHTML(false) alled on it.

我們先創建一個buffer用于存儲json

創建一個jsonencoder

設置html編碼為false

type Test struct {
  Content   string
}
func main() {
  t := new(Test)
  t.Content = "http://www.baidu.com?id=123test=1"
  bf := bytes.NewBuffer([]byte{})
  jsonEncoder := json.NewEncoder(bf)
  jsonEncoder.SetEscapeHTML(false)
  jsonEncoder.Encode(t)
  fmt.Println(bf.String())
}
{"Content":"http://www.baidu.com?id=123test=1"}
Process finished with exit code 0

查看文檔和源碼還是解決問題的好方法。

以上這篇golang json.Marshal 特殊html字符被轉義的解決方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • golang語言如何將interface轉為int, string,slice,struct等類型
  • golang如何使用struct的tag屬性的詳細介紹
  • Golang 如何解析和生成json
  • golang使用json格式實現增刪查改的實現示例
  • golang 實現struct、json、map互相轉化

標簽:德宏 貴州 許昌 吐魯番 曲靖 東營 常州 保定

巨人網絡通訊聲明:本文標題《golang json.Marshal 特殊html字符被轉義的解決方法》,本文關鍵詞  golang,json.Marshal,特殊,html,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《golang json.Marshal 特殊html字符被轉義的解決方法》相關的同類信息!
  • 本頁收集關于golang json.Marshal 特殊html字符被轉義的解決方法的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 国产xxxx色视频在线观看14| 奶好大?好长?好紧?人妻| 理伦黄色片| 国产V片在线观看| 伊人影音| 抓灰1—40章全本免费阅读| 好大灬好硬灬好爽灬| 破處女苞大叫A片免费| 圄产精品久久久久精品观看| 夹得好紧好涨出水了王爷不要| 少妇BBwBBw性生话| 国产成人综合亚洲网| 嗯嗯啊啊不要啊| 奶大灬大灬大灬大灬硬灬爽灬| 秋霞手机入口二日韩区| 《貂蝉艳史》三级在线播放| 男生把j伸进女子尿口里尿| 国产精品爽爽久久久久久鸭绿欲| 亚洲综合精品尤物秘?999| 男子扒下美女内裤摸得受不了| 污污的免费网站| 国产一级特黄a高潮片| 久草精品在线播放| 国产精品免费露脸视频| 亚洲情XO亚洲XO无码| 漂亮年轻少妇A级毛片| www.国产白丝袜护士喷动漫| 伦奸片| 国产精品久久久久久精品三级古代 | 99爱色| 成人做爰黄A片免费看直播室动漫| 岛国视频在线免费观看| 三个老汉弄得我好爽视频| 人人爽人人爽人人片A∨2015| 国产精品欧美亚洲| 最近中文字幕mv免费动画| 日本边添边摸免费视频网站| 一级A片一级毛片一级APP| 饶阳县| 国产k频道探花精品 软件亮点| 五月婷婷开心中文|