激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Golang - 特殊字符的json序列化總結大全

特殊字符的json序列化總結大全

2020-05-19 09:36wu_sphinx Golang

這篇文章主要給大家介紹了關于特殊字符的json序列化的相關資料,通過示例代碼分別給大家介紹了關于python 、 rust 、 java 和golang對特殊字符的json序列化操作,需要的朋友可以參考借鑒,下面來一起學習學習吧

前言

JSon 數據中的String 傳遞數據時,需要處理好特殊字符.本文主要給大家總結介紹了關于golang、rust、java和Python對特殊字符的json序列化處理操作,下面話不多說了,來一起看看詳細的介紹吧

先來看一段 golang

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
package main
 
import (
 "encoding/json"
 "fmt"
)
 
func main() {
 
 data := map[string]string{
 "str0": "Hello, world",
 "str1": "<",
 "str2": ">",
 "str3": "&",
 }
 jsonStr, _ := json.Marshal(data)
 
 fmt.Println(string(jsonStr))
}

輸出結果

{"str0":"Hello, world","str1":"\u003c","str2":"\u003e","str3":"\u0026"}

先來段 rust 的

?
1
2
3
4
5
6
7
8
9
10
11
12
13
extern crate rustc_serialize;
use rustc_serialize::json;
use std::collections::HashMap;
 
fn main(){
 let mut data = HashMap::new();
 data.insert("str0","Hello, world");
 data.insert("str1","<");
 data.insert("str2",">");
 data.insert("str3","&");
 println!("{}", json::encode(&data).unwrap());
}
}

結果

{"str0":"Hello, world","str2":">","str1":"<","str3":"&"}

再來看段 python 的

?
1
2
3
4
5
import json
 
data = dict(str0='Hello, world',str1='<',str2='>',str3='&')
 
print(json.dumps(data))

輸出結果

{"str0": "Hello, world", "str1": "<", "str2": ">", "str3": "&"}

再看看java的

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import org.json.simple.JSONObject;
 
class JsonDemo
{
 public static void main(String[] args)
 {
 JSONObject obj = new JSONObject();
 
 obj.put("str0", "Hello, world");
 obj.put("str1", "<");
 obj.put("str2", ">");
 obj.put("str3", "&");
 
 System.out.println(obj);
 }
}

輸出結果

{"str3":"&","str1":"<","str2":">","str0":"Hello, world"}

總結

可以看到 python 、 rust 和 java 對這4個字符串序列化結果幾乎是相同的了(除了java序列化后順序有微小變化外),golang明顯對 < ,

> , & 進行了轉義處理,看看文檔怎么說的

// 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.

& 被轉義是為了防止一些瀏覽器將JSON輸出曲解為HTML,

而 < , > 被強制轉義是因為golang認為這倆是無效字節(這點比較奇怪),

我如果技術棧都是golang還好說,如果跨語言跨部門合作一定需要注意這點(已踩坑)……

好了,以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對服務器之家的支持。

原文鏈接:https://studygolang.com/articles/14735

延伸 · 閱讀

精彩推薦
  • Golanggo語言制作端口掃描器

    go語言制作端口掃描器

    本文給大家分享的是使用go語言編寫的TCP端口掃描器,可以選擇IP范圍,掃描的端口,以及多線程,有需要的小伙伴可以參考下。 ...

    腳本之家3642020-04-25
  • GolangGolang通脈之數據類型詳情

    Golang通脈之數據類型詳情

    這篇文章主要介紹了Golang通脈之數據類型,在編程語言中標識符就是定義的具有某種意義的詞,比如變量名、常量名、函數名等等,Go語言中標識符允許由...

    4272021-11-24
  • Golanggolang 通過ssh代理連接mysql的操作

    golang 通過ssh代理連接mysql的操作

    這篇文章主要介紹了golang 通過ssh代理連接mysql的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    a165861639710342021-03-08
  • Golanggolang json.Marshal 特殊html字符被轉義的解決方法

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

    今天小編就為大家分享一篇golang json.Marshal 特殊html字符被轉義的解決方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧 ...

    李浩的life12792020-05-27
  • Golanggo日志系統logrus顯示文件和行號的操作

    go日志系統logrus顯示文件和行號的操作

    這篇文章主要介紹了go日志系統logrus顯示文件和行號的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    SmallQinYan12302021-02-02
  • Golanggolang的httpserver優雅重啟方法詳解

    golang的httpserver優雅重啟方法詳解

    這篇文章主要給大家介紹了關于golang的httpserver優雅重啟的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,...

    helight2992020-05-14
  • Golanggolang如何使用struct的tag屬性的詳細介紹

    golang如何使用struct的tag屬性的詳細介紹

    這篇文章主要介紹了golang如何使用struct的tag屬性的詳細介紹,從例子說起,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看...

    Go語言中文網11352020-05-21
  • GolangGolang中Bit數組的實現方式

    Golang中Bit數組的實現方式

    這篇文章主要介紹了Golang中Bit數組的實現方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧...

    天易獨尊11682021-06-09
主站蜘蛛池模板: 韩国一级免费视频 | 激情综合在线观看 | 三级国产三级在线 | 最近免费中文字幕在线视频2 | 国产一区二区三区在线视频 | 欧美毛片 | 欧美精品久久久久久久久久 | 久久99亚洲精品久久99果 | 国产精品久久久久久久久久久久久久久久 | 国内精品久久久久久影视8 嫩草影院在线观看网站成人 | 久久精品国产亚洲7777 | 亚洲国产精品久久久久久久久久久 | 在线播放黄色网址 | 蜜桃成品人免费视频 | 澳门一级淫片免费视频 | 亚洲成人福利电影 | 精品国产91久久久久久久妲己 | 免费看操片 | 欧美日韩经典在线 | 日本在线播放一区二区 | 国产亚洲精品久久久久久久久久 | 国产xxxxx在线观看 | 成人爽a毛片免费啪啪红桃视频 | av性色全交蜜桃成熟时 | 哪里可以看免费的av | 亚洲va久久久噜噜噜久久男同 | 91视频观看免费 | 午夜久久电影 | 91社影院在线观看 | 色播视频在线播放 | 精品久久久久久久久久久久 | 久久精品亚洲欧美日韩精品中文字幕 | 国产成人综合在线观看 | 72pao成人国产永久免费视频 | 亚洲影视综合网 | 99精品欧美一区二区 | 亚洲va久久久噜噜噜久久男同 | 亚洲网站在线观看视频 | 国产一级小视频 | www.guochan| 免费欧美 |