QT Json字串(使用方法)

2021-10-01 06:59:44 字數 3681 閱讀 8529

1.定義

bool

double

string

array

object

null

2.陣列和物件(1)陣列是值的列表,形如[1 ,2,… ],

(2)物件是鍵/值對的集合,形如。

(3)物件中的所有鍵都是字串,並且物件不能包含任何重複鍵。陣列和物件可以相互巢狀。

3.乙個簡單的json檔案示例。

乙個json物件包含五個鍵和值,第二個鍵的值是乙個物件,第五個鍵的值是乙個陣列,並且陣列中第四個元素是乙個物件。

,"stu_id"

:125

,"stu_name"

:"娜可露露"

,"陣列":[

"中國 陝西"

,"中國 china"

,888,]

}

1.**sondocument對json檔案進行讀和寫操作,非常方便

2.**sonobject

封裝乙個json物件,

3.**sonvalue

封裝乙個值,它除了可以被以上六種型別所表示,還有乙個特殊的型別,undefined,用來表示乙個未定義的值。

4.**sonarray

封裝乙個json陣列,是乙個值的列表,插入資料時,插入的位置必須以0開始,依次插入。

1.組裝

//1.先定義乙個物件

**sonobject ob;

ob.insert

("stat"

,true);

ob.insert

("cat"

,"fish");

ob.insert

("math"

,100);

ob.insert

("length"

,4.65);

//2.在定義乙個陣列

**sonarray arr;

arr.

insert(0

,"中國 陝西");

arr.

insert(1

,"中國 china");

arr.

insert(2

,888);

arr.

insert(3

, ob)

;//3.組裝鍵和值,生成**sondocument

qvariantmap map;

map[

"stu_id"]=

125;

map[

"stu_name"]=

"娜可露露"

; map[

"color"]=

qcolor(0

,255

,255);

map[

"animal"

]= ob;

map[

"陣列"

]= arr;

**sondocument doc = **sondocument::

fromvariant

(map)

;

2.讀取

//儲存的時候是什麼型別,就轉換為對應型別

qdebug()

<

"stu_name"].

tostring()

;qdebug()

<

"stu_id"].

toint()

; **sonobject objanimal = doc[

"animal"].

toobject()

; objanimal.

value

("cat").

tostring()

;//解陣列,兩種寫法

**sonarray array = doc[

"陣列"].

toarray()

;qdebug()

<

0).tostring()

;qdebug()

<

.tostring()

;//解物件,兩種寫法

**sonobject objarr = array[3]

.toobject()

;qdebug()

<

"stat"].

tobool()

;qdebug()

<

value

("math").

toint()

;

3.結果

1.原理

先通過**sonobject 或者qvariantmap,插入鍵和值,然後轉換為**sondocument型別的json檔案,在通過**sondocument內建方法,轉換為文字。

第一種方法:採用**sonobject

**sonobject ob;

ob.insert

("name_id"

,"倚天屠龍刀");

ob.insert

("stu_id"

,"倚天一出");

ob.insert

("address_id"

,"誰與爭鋒");

**sondocument doc;

doc.

setobject

(ob)

; qstring data = doc.

tojson

(**sondocument::compact)

;

第二種方法:採用qvariantmapqvariant可以儲存各種資料型別,qvariantmap相當於qmap

note:qvariant型別的放入和取出必須是相對應的,你放入乙個int就必須按int取出,不能用tostring()。

qvariantmap map;

map[

"stu_id"]=

qstring

("201512030120");

map[

"name_id"]=

qstring

("血刀老祖");

map[

"color"]=

qcolor(0

,0,0

);//indented:按照json風格生成字串,自動縮排

//compact:緊湊格式,直接生成一堆字串,比較挫,但是占用空間小

qstring data = **sondocument::

fromvariant

(map)

.tojson

(**sondocument::indented)

;

字串使用方法

我們來看看在使用字串的過程中可能會遇到的一些特殊情況 首先,什麼時候用雙引號,什麼時候用單引號呢?一致性原則 在表示乙個完整的字串的時候,在字串的兩頭,要麼全是雙引號,要麼全是單引號。如 1 string1 it is a wonderful world 2 string2 it is a wond...

JavaScript字串使用方法

查詢方法 charat 返回字串中第n個字元的實際值,超出範圍則返回空字串,有效範圍0到length 1 charcodeat 返回字串中第n個字元的unicode編碼,超出範圍則返回nan,有效範圍0到length 1 fromcharcode 根據字元編碼組成的新的字串 位置方法 indexof...

STL 字串使用方法

string s1 預設建構函式,s1為空串 string s2 s1 將s2初始化為s1的乙個副本 string s3 valuee 將s3初始化乙個字串面值副本 string s4 n,c 將s4 初始化為字元 c 的n個副本 cin s5 讀取有效字元到遇到空格 getline cin,s6 ...