1.陣列或物件的每個成員的值,可以是簡單值,也可以是復合值。
2.簡單值分為四種:字串、數值(必須以十進位制表示)、布林值和null。3.復合值分為兩種:符合json格式的物件和符合json格式的陣列。
4.陣列或物件最後乙個成員的後面,不能加逗號。
5.陣列或物件之中的字串必須使用雙引號,不能使用單引號。
6.物件的成員名稱必須使用雙引號。以下是合格的json值。
[「one」,「two」,「three」]
[,]以下是不合格的json值。
//屬性名必須使用雙引號
[32,64,128,0xfff]//不能使用十六進製制值
//不能使用undefined
}//不能使用函式和日期物件需要注意的是,空陣列和空物件都是合格的json值,null本身也是乙個合格的json值。
json.
stringify
("abc"
);//""abc""
json.
stringify
();//
如果乙個值是undefined、函式或xml物件,這個值會被省略,除非該值是陣列的成員,則返回null。
json.
stringify
(,a:
[function()
,undefined]
});//""該方法還可以接受乙個陣列引數,表示需要轉化的屬性。
json.
stringify(,
['a'
]);//""該方法還可以接受乙個函式作為引數,用來更改預設的序列化的行為。
functionf
(key,value)
returnvalue;}
json.
stringify
(,f)
//""上面**中的f函式,接受兩個引數,分別是被轉化物件的鍵和值。這裡需要特別注意的是,被處理的除了原有的鍵,還會新增乙個空白的鍵,對應整個被轉化的物件,所以處理之前,必需對鍵或值做乙個判斷。
functionf
(key,value)
json.
stringify
(,f)
//:[objectobject]//[a]:1//[b]:2//""如果經過處理,某個屬性返回undefined或沒有返回值,則該屬性會被忽略。
functionf
(key,value)
returnvalue;}
json.
stringify
(,f)
//""這裡需要注意的是,如果某個屬性的值是乙個物件,則會展開這個物件,先處理它的內部屬性。另外,前面說過,有乙個鍵是空鍵,對應整個被轉化的物件。最後真正進行序列化的,實際上就是空鍵對應的那個值,其他的鍵都是用來幫助空鍵完成那個值。
functionf
(key,value)
if(key===
"a")
}json
.stringify
(,f)
//""json.stringify還可以接受第三個引數,用於增加返回的json字串的可讀性。如果是數字,表示每個屬性前面新增的空格(最多不超過10個);如果是字串(不超過10個字元),則該字串會新增在每行前面。
json.stringify(,null,2);//""
json.stringify(,null,"|");//""如果json.stringify處理的物件,包含乙個tojson方法,則它會使用這個方法得到乙個值,然後再轉成字串。
json.stringify(})//""cool""date物件本身就部署了tojson方法。json.stringify(newdate("20110729"))//""20110729t00:00:00.000z""json.parse()該方法用於將json字串轉化成物件。json.parse('{}');//{}json.parse('true');//true
json.parse('"foo"');//"foo"
json.parse('[1,5,"false"]');//[1,5,"false"]
json.parse('null');//null
varo=json.parse('');o.name//張三如果傳入的字串不是有效的json格式,json.parse將報錯。json.parse("'string'")//illegalsinglequotes'"string"')//"string"為了處理解析錯誤,可以將json.parse放在try\catch**塊中。該方法可以接受乙個過濾函式,用法與json.stringify類似。
functionf(key,value)if(key==="a")}
varo=json.parse('',f);o.a
DataX執行的json檔案詳細解析
dn 要讀取的hdfs上的資料庫的路徑 defaultfs hdfs位址,ha是hdfs mycluster hadoopconfig type string 每個列封裝成乙個json物件,讀列通過下標索引讀取資料塊中的列 type是資料庫中列對應的資料型別 外部傳入的引數使用固定值value接收。...
JSON的理解使用
寫乙個介面,由於同事是android的,用json比較方便,使用了,便於他呼叫。介面 較煩。需要標頭檔案cjson.h,cjson.c,乙個實驗 root doit sensorvalue printf 222 root type d n root type out cjson print root...
json的簡單使用
1.解析json串 str json reader reader json value root,msg if reader.parse str,root reader將json字串解析到root,root將包含json裡所有子元素 json 陣列 channels msgg channels ss...