一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

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

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
主站蜘蛛池模板: 拔插拔插.com | 高人先生免费观看全集 | 国产欧美一区二区精品性色 | 第一次破女视频国产一级 | 国产欧美日韩在线不卡第一页 | 97爱干| 99热这里只有精品在线观看 | 成年人在线免费看 | 四虎影院4hu | 欧美大奶艳星 | 国产精品边做边接电话在线观看 | kuaibo成人播放器 | 九九爱这里只有精品 | 国产午夜精品久久久久 | 丰满岳乱妇在线观看视频国产 | 国色天香视频完整版 | 男同巨黄gay小说好爽 | 天堂网www在线中文天堂 | 修修视频在线观看 | 欧美色影视| 国产精品短视频 | segui久久综合精品 | 亚洲高清影院 | 亚洲精品国产一区二区在线 | 欧美成人一区二区三区 | 日韩欧美亚洲天堂 | 精品一区二区三区高清免费不卡 | 色五婷婷| 摄像头东北对白清晰 | 欧美 变态 另类 人妖班 | 国产成人一级 | 99热精品在线免费观看 | 国产高清视频网站 | 大妹子最新视频在线观看 | 问一问免费咨询 | 亚洲第一区二区快射影院 | 清纯唯美 亚洲 | 人人爱天天做夜夜爽88 | 91制片厂制作传媒破解版免费 | 美女沟厕撒尿全过程高清图片 | 精品久久久久久综合网 |