日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java json u0026_特殊字符的json序列化

發布時間:2025/3/15 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java json u0026_特殊字符的json序列化 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

先來看一段golang

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的

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":"

再來看段python的

import json

data = dict(str0='Hello, world',str1='',str3='&')

print(json.dumps(data))

輸出結果

{"str0": "Hello, world", "str1": "", "str3": "&"}

再看看java的

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":"","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 "" 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還好說,如果跨語言跨部門合作一定需要注意這點(已踩坑)……

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的java json u0026_特殊字符的json序列化的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。