json lib的字串自動轉換坑

2021-09-13 11:22:39 字數 2017 閱讀 5283

(1)**

import com.google.gson.gson;

import com.google.gson.gsonbuilder;

import com.google.gson.jsonobject;

import com.google.gson.jsonparser;

import net.sf.json.jsonobject;

public class c ");

json.put("jsonobj1","\n");

json.put("jsonobj2"," ");

json.put("jsonobj3","");

json.put("jsonobj4","");

json.put("jsonarr0","[1,2]");

json.put("jsonarr1"," [1,2]");

json.put("jsonarr2","[1,2]\n");

json.put("jsonarr3","\"[1,2]\"");

json.put("jsonarr4","[1,2,-]");

json.put("jsonarr5","[1,2,a]");

system.out.println(format(json.tostring()));

}public static string format(string json)

}

com.google.code.gson

gson

2.8.5

(2)輸出

json-lib-2.3輸出:

net.sf.json-lib

json-lib

2.3jdk15

,

"jsonobj1": "\n",

"jsonobj2": " ",

"jsonobj3": ,

"jsonobj4": "",

"jsonarr0": [1,2

],"jsonarr1": " [1,2]",

"jsonarr2": "[1,2]\n",

"jsonarr3": "[1,2]",

"jsonarr4": [

1,2,

"-"],

"jsonarr5": "[1,2,a]"

}

json-lib-2.4輸出:

net.sf.json-lib

json-lib

2.4jdk15

,

"jsonobj1": "\n",

"jsonobj2": " ",

"jsonobj3": ,

"jsonobj4": "",

"jsonarr0": [1,2

],"jsonarr1": " [1,2]",

"jsonarr2": "[1,2]\n",

"jsonarr3": "[1,2]",

"jsonarr4": [

1,2,

"-"],

"jsonarr5": "[1,2,a]"

}

(3)異常現象

字串"\"xx\""轉換成"xx",""轉成物件,"[value,vlaue]""轉成[value,vlaue]物件

json-lib版本不同:json-lib-1.3把"\"xx\""轉換成"xx",""轉成物件,"[value,vlaue]""轉成[value,vlaue]物件

json-lib-1.4的"\"xx\""不轉換,而""轉成物件,"[value,vlaue]""轉成[value,vlaue]物件

json-lib與gson等其他json庫不一樣,會預設將json字串(包含雙引號字串)轉換json物件。

字串的轉換

數字 布林值等其他資料型別都可以轉換成字串 一般來說,指令碼引擎將根據上下文自動完成這樣的轉換。例如,當把數字或布林形變數傳給希望接收的字串變數的函式時,就會先隱式將該數值轉換成字串,再進行處理 var num 35.00 alert num 如果在賦值語句中要對兩個變數執行加法操作,其中乙個事字串...

字串的轉換

字串轉換 1.數字轉字串 有兩種方法,第一種用string.valueof,第二種先把基本型別裝箱,轉換為類型別 然後使用tostring方法 package test public class lianxi 這裡要注意int型別直接用tostring是不可以的 下面就是字串轉化為數字 可以呼叫in...

字串的轉換

1.qstring toint 函式將字串轉換為整數數值,類似函式還有todouble tofloat tolong tolonglong 等。bool型別用於返回轉換的狀態,第二個引數指定了轉換的基數。qstring str 125 bool ok int hex str.toint ok,16 ...