Android解析json數(shù)據(jù)示例代碼(三種方式)
Json數(shù)據(jù)
這里附上一個(gè)檢查json數(shù)據(jù)格式是否正確的網(wǎng)站
三種解析方式android自帶解析,Gson解析,F(xiàn)astJson解析
1、android自帶解析
json_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
Log.d("txt",s);
List<City> list = new ArrayList<City>();
try {
JSONArray obj = new JSONArray(s);
for(int i=0;i<obj.length();i++){
JSONObject jsonobj = (JSONObject)obj.get(i);
City city = new City();
city.setCode(jsonobj.getString("code"));
city.setSheng(jsonobj.optString("sheng"));
city.setDi(jsonobj.optString("di"));
city.setXian(jsonobj.optString("xian"));
city.setName(jsonobj.optString("name"));
city.setLevel(jsonobj.optInt("level"));
Log.d("txt",city.toString());
textView.append(city.toString());
}
} catch (JSONException e) {
e.printStackTrace();
}
}
});
先獲取JSON數(shù)組,在解析JsonObject。
2、Gson解析
Gson_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
JsonParser parser = new JsonParser();
JsonArray jsonArray = parser.parse(s).getAsJsonArray();
Gson gson = new Gson();
for (JsonElement obj:jsonArray){
City city = gson.fromJson(obj,City.class);
Log.d("txt", city.toString());
textView.append(city.toString());
}
}
});
先獲取Json數(shù)組,再解析jsonObject。
3、FastJson
fastjson_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String s = getString();
Log.d("txt",s);
List<City> lists = JSON.parseArray(s,City.class);
for(City city:lists){
textView.append(city.toString());
Log.d("txt",city.toString());
}
}
});
直接獲取JsonArray解析List<Bean>。
public static final Object parse(String text); // 把JSON文本parse為JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse為JavaBean public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合 public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文本 public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文本
public static final Object toJSON(Object javaObject); 將JavaBean轉(zhuǎn)換為JSONObject或者JSONArray(和上面方法的區(qū)別是返回值是不一樣的)
三種解析方法,個(gè)人感覺(jué)fastjson使用起來(lái)還是很方便的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android網(wǎng)絡(luò)請(qǐng)求框架Retrofit詳解
這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)絡(luò)請(qǐng)求框架Retrofit,使用Retrofit2.0.0版本進(jìn)行實(shí)例演示,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08
Android如何自定義EditText光標(biāo)與下劃線顏色詳解
在android開(kāi)發(fā)中 EditTextText是我們經(jīng)常用到的,我們使用時(shí)會(huì)有一些小問(wèn)題,下面這篇文章主要給大家介紹了關(guān)于利用Android如何自定義EditText光標(biāo)與下劃線顏色的相關(guān)資料,需要的朋友可以參考借鑒,下面來(lái)一起看看吧。2017-08-08
Android自定義view之太極圖的實(shí)現(xiàn)教程
這篇文章主要給大家介紹了關(guān)于Android自定義view之太極圖的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01
6步輕松實(shí)現(xiàn)兩個(gè)listView聯(lián)動(dòng)效果
這篇文章主要為大家詳細(xì)介紹了教大家通過(guò)6步輕松實(shí)現(xiàn)兩個(gè)listView聯(lián)動(dòng)效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-04-04
Android 仿余額寶數(shù)字跳動(dòng)動(dòng)畫(huà)效果完整代碼
這篇文章主要介紹了Android 仿余額寶數(shù)字跳動(dòng)動(dòng)畫(huà)效果完整代碼,需要的朋友可以參考下2017-11-11
Android實(shí)現(xiàn)卡片翻轉(zhuǎn)動(dòng)畫(huà)
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)卡片翻轉(zhuǎn)動(dòng)畫(huà),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-01-01
詳解Android自定義控件屬性TypedArray以及attrs
這篇文章主要為大家介紹了android自定義控件屬性TypedArray以及attrs,感興趣的小伙伴們可以參考一下2016-01-01
Android開(kāi)發(fā)方式之Java+html+javascript混合開(kāi)發(fā)
這篇文章主要為大家詳細(xì)介紹了Android開(kāi)發(fā)方式的其中一種Java+html+javascript混合開(kāi)發(fā),感興趣的小伙伴們可以參考一下2016-06-06
Android 利用ViewPager實(shí)現(xiàn)圖片可以左右循環(huán)滑動(dòng)效果附代碼下載
本文通過(guò)一個(gè)小demo給大家展示一段代碼實(shí)現(xiàn)viewpage圖片左右循環(huán)滑動(dòng)效果,對(duì)viewgager循環(huán)滑動(dòng)相關(guān)知識(shí)感興趣的朋友一起學(xué)習(xí)吧2015-11-11

