熟女俱乐部五十路二区av,又爽又黄禁片视频1000免费,国产卡一卡二卡三无线乱码新区,中文无码一区二区不卡αv,中文在线中文a

新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > Android Json解析 - 初步

Android Json解析 - 初步

作者: 時間:2016-09-12 來源:網(wǎng)絡(luò) 收藏

JSON與XML一樣都是數(shù)據(jù)格式,JSON的數(shù)據(jù)格式比XML更小。這里主講JSON。

本文引用地址:http://www.bjwjmy.cn/article/201609/305004.htm

JSON是JavsScript對象符號。

下面是一個簡單的JSON格式

{name:zhangsan,age:22,address:太原}

這就是一個對象,里面的值key是冒號前面的類容,value是冒號后面的類容。

JSON還可以有數(shù)組的形式,如下:

[{name:zhangsan,age:22,address:太原},

{name:lisi,age:20,address:黃岡},

{name:wangwu,age:21,address:武漢}]

在中括號里全都是對象,這種對象的個數(shù)沒限制,對象里是鍵值對。

在JSON對象中還可以有對象,如下:

{

name:zhangsan,age:22,

address:{country:中國,province:山西,city:太原}

}

這就是說address key是一個對象。

這就是JSON的基本形式。

首先下載解析JSON需要的Jar包 下載。這是Google提供解析JSON的開源的Json Jar包。

1.最基礎(chǔ)的解析

這種解析式最普遍的,根據(jù)JSON的格式來解析,我來解析如下的JSON數(shù)據(jù):

{name:zhangsan,age:22,address:太原}

首先

String s={name:zhangsan,age:22,address:太原};

這里使用反斜杠來使用雙引號。

JsonReader reader=new JsonReader(new StringReader(s));

聲明一個JsonReader對象,將String s傳入。

try {

JsonReader reader=new JsonReader(new StringReader(data));

reader.beginObject();

while(reader.hasNext())

{

String key=reader.nextName();

if(name.equals(key))

{

System.out.println(reader.nextString());

}

if(age.equals(key))

{

System.out.println(reader.nextInt());

}

if(address.equals(key))

{

System.out.println(reader.nextString());

}

}

reader.endObject();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

結(jié)果如下:

開始解析的時候調(diào)用reader.beginObject();結(jié)束的時候調(diào)用reader.endObject().應(yīng)為一個對象里可能有很多的鍵值對,所以要使用while循環(huán),當對象里的鍵值對都循環(huán)完了的話reader.hasNext()方法返回false。reader.nextXXX()獲得你所要的值,XXX為類型。

2.解析數(shù)組

下面解析如下的Json數(shù)據(jù):

[{name:zhangsan,age:22,address:太原},

{name:lisi,age:20,address:黃岡},

{name:wangwu,age:21,address:武漢}]

如下代碼:

try {

JsonReader reader=new JsonReader(new StringReader(data));

reader.beginArray();

while(reader.hasNext())

{

reader.beginObject();

while(reader.hasNext())

{

String key=reader.nextName();

if(name.equals(key))

{

System.out.println(reader.nextString());

}

if(age.equals(key))

{

System.out.println(reader.nextInt());

}

if(address.equals(key))

{

System.out.println(reader.nextString());

}

}

reader.endObject();

}

reader.endArray();

} catch (IOException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

根據(jù)這個Json的數(shù)據(jù)結(jié)構(gòu),我先解析數(shù)組,所以開始就reader.beginArray();當然還要reader.endArray();同樣使用reader.hasNext()來判斷數(shù)組是否都解析完了。

下面是效果圖:

3.包含對象的對象解析

下面我解析如下的Json數(shù)據(jù):

{

name:zhangsan,age:22,

address:{country:中國,province:山西,city:太原}

}

廢話不多說先來代碼:

try {

JsonReader reader=new JsonReader(new StringReader(data));

reader.beginObject();

while(reader.hasNext())

{

String key=reader.nextName();

if(name.equals(key))

{

System.out.println(reader.nextString());

}

if(address.equals(key))

{

reader.beginObject();

while(reader.hasNext())

{

String theKey=reader.nextName();


上一頁 1 2 下一頁

關(guān)鍵詞:

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉