json詳解及應用

2021-10-02 11:04:33 字數 3946 閱讀 7166

如果a要傳送給b一些資訊

通過xml:

>

>

>

zhangsanname

>

>

18age

>

person

>

>

>

lisiname

>

>

20age

>

person

>

persons

>

這樣解析起來很慢

如果通過json:

person per =

newperson()

;per.

set***()

;//設定一些屬性

//json的形式: key: value

"zs"

:per

//傳送給另一邊,另一邊直接get,效率高很多

per = json.

get***x

(" zs' )

;

//person:age,name,address;

//別的都是構造方法和set,get

//這裡的address是另乙個類,包含家庭位址和學校位址,在後面

public

class

person

public

person

(int age, string name, address address)

public

intgetage()

public

void

setage

(int age)

public string getname()

public

void

setname

(string name)

public address getaddress()

public

void

setaddress

(address address)

}

public

class

address

public

address

(string homeaddress, string schooladdress)

public string gethomeaddress()

public

void

sethomeaddress

(string homeaddress)

public string getschooladdress()

public

void

setschooladdress

(string schooladdress)

}

json的應用其實就是各種轉換

map => json

private

static

void

map1()

* */

}

物件=>json
private

static

void

object2()

,"name":"zs",

"age":23

} */

}

string => json
public

static

void

string3()

throws jsonexception

//上面的貼上到「」內會自動轉義

string str ="";

jsonobject json =

newjsonobject

(str)

; system.out.

println

(json)

;}

檔案 => json

其實還需要中間再轉換成string,即檔案=> string => json

string=>json的方法和前面一樣

檔案=>string有兩種方法:

方法一(超級麻煩):

public

void

file4()

throws ioexception, jsonexception

system.out.

println

(sb)

;//string->json

jsonobject json =

newjsonobject

(sb.

tostring()

);system.out.

println

(json)

;}

方法二(簡單很多):
public

static

void

file5()

throws ioexception, jsonexception

生成json檔案
public

static

void

json6()

throws ioexception, jsonexception

還有乙個東西叫jsonarray

這裡指的是org.json.jsonarray

在後續的學習中,我發現這玩!意!爾!不!怎!麼!用!看看就好

public

static

void

jsonarray7()

throws ioexception, jsonexception ,]"

; jsonarray array =

newjsonarray

(str)

; system.out.

println

(array)

;}

這裡是高階版的jsonarray

net.sf.json.jsonarray是新版的,現在大多數用這個

需要一些jar包(版本不重要啦):

commons-logging-1.1.1.jar

ezmorph-1.0.6.jar

commons-beanutils-1.7.0.jar

commons-lang-2.4.jar

commons-collections-3.2.1.jar

json-lib.jar

(我都放在github 裡了)

map=>jsonarray

public

static

void

map2jsonarray8()

throws ioexception, jsonexception

jsonarray => map
public

static

void

jsonarray2map9()

,]";

net.sf.json.jsonarray jarray =

newnet.sf.json.jsonarray()

;//先建立乙個陣列和map

jarray = jarray.

fromobject

(string)

; map

map =

newhashmap

<

>()

;//獲取陣列中的元素

for(

int i=

0; i < jarray.

size()

;i++)}

system.out.

println

(map)

;}

void 詳解及應用

void 在英文中作為名詞的解釋為 空虛 空間 空隙 而在 c 語言中,void 被翻譯為 無型別 相應的void 為 無型別指標 void 似乎只有 注釋 和限制程式的作用,當然,這裡的 注釋 不是為我們人提供注釋,而是為編譯器提供一種所謂的注釋。1.對函式返回的限定,這種情況我們比較常見。2.對...

select函式詳解及應用

select在socket程式設計中還是比較重要的,可是對於初學socket的人來說都不太愛用select寫程式,他們只是習慣寫諸如connect accept recv或recvfrom這樣的阻塞程式 所謂阻塞方式block,顧名思義,就是程序或是執行緒執行到這些函式時必須等待某個事件的發生,如果...

select函式詳解及應用

select在socket程式設計中還是比較重要的,可是對於初學socket的人來說都不太愛用select寫程式,他們只是習慣寫諸如connect accept recv或recvfrom這樣的阻塞程式 所謂阻塞方式block,顧名思義,就是程序或是執行緒執行到這些函式時必須等待某個事件的發生,如果...