Android解析JSON數(shù)據(jù)的方法分析
本文實(shí)例講述了Android解析JSON數(shù)據(jù)的方法。分享給大家供大家參考,具體如下:
JSON作為一種“輕量”的數(shù)據(jù)結(jié)構(gòu)傳遞數(shù)據(jù),在JS中有廣泛的應(yīng)用
Google公司對(duì)JSON的解析提供了gson.jar這個(gè)包,它不依賴于其他任何JAR包;自從Android3.0中已經(jīng)合入了該解析器的功能,但之前的版本是沒有的。
findViewById(R.id.parseBtn).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
MainActivity.parseJson(jsonData);
}
});
public static void parseJson(String jsonStr){
//如果要解析JSON數(shù)據(jù),首先要有一個(gè)JsonReader對(duì)象
JsonReader jsonReader = new JsonReader(new StringReader(jsonStr));
try {
//開始遍歷數(shù)組(多個(gè)JSON對(duì)象)
jsonReader.beginArray();
while(jsonReader.hasNext()){
//開始遍歷JSON對(duì)象(含有多個(gè)屬性)
jsonReader.beginObject();
while(jsonReader.hasNext()){
String tagName = jsonReader.nextName();
if(tagName.equals("name")){
System.out.println("name --> " + jsonReader.nextString());
}else if(tagName.equals("age")){
System.out.println("age --> " + jsonReader.nextString());
}
}
//遍歷JSON對(duì)象結(jié)束
jsonReader.endObject();
}
//遍歷數(shù)組結(jié)束
jsonReader.endArray();
} catch (IOException e) {
e.printStackTrace();
}
}
將JSON格式轉(zhuǎn)換為類的步驟如下:
//先定義一個(gè)類
public class User {
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
//只將一組數(shù)據(jù)轉(zhuǎn)換的方法
findViewById(R.id.parseObj).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String jsonData = "{\"name\":\"Michael\",\"age\":20}";
Gson gson = new Gson();
User user = gson.fromJson(jsonData, User.class);
System.out.println("name--->" + user.getName());
System.out.println("age---->" + user.getAge());
}
});
//將多組數(shù)據(jù)轉(zhuǎn)換的方法
findViewById(R.id.parseObjs).setOnClickListener(new OnClickListener(){
@Override
public void onClick(View v) {
String jsonData = "[{\"name\":\"Michael\",\"age\":20},{\"name\":\"Mike\",\"age\":21}]";
Type listType = new TypeToken<LinkedList<User>>(){}.getType();
Gson gson = new Gson();
LinkedList<User> users = gson.fromJson(jsonData, listType);
for (Iterator iterator = users.iterator(); iterator.hasNext();) {
User user = (User) iterator.next();
System.out.println("name--->" + user.getName());
System.out.println("age---->" + user.getAge());
}
}
});
更多關(guān)于Android相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Android文件操作技巧匯總》、《Android編程開發(fā)之SD卡操作方法匯總》、《Android開發(fā)入門與進(jìn)階教程》、《Android資源操作技巧匯總》、《Android視圖View技巧總結(jié)》及《Android控件用法總結(jié)》
希望本文所述對(duì)大家Android程序設(shè)計(jì)有所幫助。
- Android編程簡(jiǎn)單解析JSON格式數(shù)據(jù)的方法示例
- Android使用OKHTTP解析JSON數(shù)據(jù)的實(shí)例代碼
- android JSON解析數(shù)據(jù) android解析天氣預(yù)報(bào)
- Android 中對(duì)JSON數(shù)據(jù)解析實(shí)例代碼
- Android解析json數(shù)據(jù)示例代碼(三種方式)
- Android編程實(shí)現(xiàn)根據(jù)經(jīng)緯度查詢地址并對(duì)獲取的json數(shù)據(jù)進(jìn)行解析的方法
- Android之解析JSON數(shù)據(jù)示例(android原生態(tài),F(xiàn)astJson,Gson)
- Android json數(shù)據(jù)解析詳解及實(shí)例代碼
- Android系列---JSON數(shù)據(jù)解析的實(shí)例
- Android利用Gson解析嵌套多層的Json的簡(jiǎn)單方法
- Android M(6.x)使用OkHttp包解析和發(fā)送JSON請(qǐng)求的教程
- Android json解析及簡(jiǎn)單例子
- android解析JSON數(shù)據(jù)
- Android中g(shù)son、jsonobject解析JSON的方法詳解
- Android解析json數(shù)組對(duì)象的方法及Apply和數(shù)組的三個(gè)技巧
- Android隨手筆記44之JSON數(shù)據(jù)解析
- Android學(xué)習(xí)筆記45之gson解析json
- android原生JSON解析實(shí)例
相關(guān)文章
Android View.onMeasure方法詳解及實(shí)例
這篇文章主要介紹了Android View.onMeasure方法詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-05-05
Android短信驗(yàn)證碼自動(dòng)填寫實(shí)現(xiàn)代碼
這篇文章主要為大家詳細(xì)介紹了Android短信驗(yàn)證碼自動(dòng)填寫實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-05-05
Android SlidingDrawer 抽屜效果的實(shí)現(xiàn)
本篇文章小編為大家介紹,Android SlidingDrawer 抽屜效果的實(shí)現(xiàn)。需要的朋友參考下2013-04-04
Android開發(fā)實(shí)現(xiàn)仿京東商品搜索選項(xiàng)卡彈窗功能
這篇文章主要介紹了Android開發(fā)實(shí)現(xiàn)仿京東商品搜索選項(xiàng)卡彈窗功能,涉及Android布局及事件響應(yīng)相關(guān)操作技巧,需要的朋友可以參考下2017-11-11
Android自定義view之利用drawArc方法實(shí)現(xiàn)動(dòng)態(tài)效果(思路詳解)
這篇文章主要介紹了Android自定義view之利用drawArc方法實(shí)現(xiàn)動(dòng)態(tài)效果,drawArc方法包含了五個(gè)參數(shù),具體細(xì)節(jié)在本文中給大家提到過,需要的朋友可以參考下2021-08-08
Android發(fā)送xml數(shù)據(jù)給服務(wù)器的方法
這篇文章主要介紹了Android發(fā)送xml數(shù)據(jù)給服務(wù)器的方法,以實(shí)例形式較為詳細(xì)的分析了Android發(fā)送XML數(shù)據(jù)及接收XML數(shù)據(jù)的相關(guān)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-09-09
Android編程獲取并設(shè)置Activity亮度的方法
這篇文章主要介紹了Android編程獲取并設(shè)置Activity亮度的方法,涉及Android針對(duì)屏幕亮度的相關(guān)操作技巧,需要的朋友可以參考下2015-12-12
Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)點(diǎn)擊兩次返回鍵退出的相關(guān)資料,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01

