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