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è)人感覺fastjson使用起來還是很方便的。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Android中實(shí)現(xiàn)視差滾動(dòng)示例介紹
大家好,本篇文章主要講的是Android中實(shí)現(xiàn)視差滾動(dòng)示例介紹,感興趣的同學(xué)趕快來看一看吧,對(duì)你有幫助的話記得收藏一下,方便下次瀏覽2021-12-12利用Android實(shí)現(xiàn)光影流動(dòng)特效的方法詳解
Flutter 的畫筆類 Paint 提供了很多圖形繪制的配置屬性,來供我們繪制更豐富多彩的圖形。本篇我們引入一個(gè) Paint 類新的屬性:maskFilter,再結(jié)合之前的 shader 和動(dòng)畫,制作出光影流動(dòng)特效,感興趣的可以嘗試一下2022-07-07Android實(shí)現(xiàn)TextView兩端對(duì)齊的方法
這篇文章主要介紹了Android實(shí)現(xiàn)TextView兩端對(duì)齊的方法,需要的朋友可以參考下2016-01-01Android ListView實(shí)現(xiàn)下拉加載功能
這篇文章主要為大家詳細(xì)介紹了Android ListView實(shí)現(xiàn)下拉加載功能,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08Android開發(fā)使用自定義View將圓角矩形繪制在Canvas上的方法
這篇文章主要介紹了Android開發(fā)使用自定義View將圓角矩形繪制在Canvas上的方法,結(jié)合實(shí)例形式分析了Android自定義view繪制圓角矩形的相關(guān)方法與使用技巧,需要的朋友可以參考下2017-10-10詳解Android6.0運(yùn)行時(shí)權(quán)限管理
自從Android6.0發(fā)布以來,在權(quán)限上做出了很大的變動(dòng),不再是之前的只要在manifest設(shè)置就可以任意獲取權(quán)限,而是更加的注重用戶的隱私和體驗(yàn)。本文詳細(xì)介紹了Android6.0運(yùn)行時(shí)權(quán)限管理。需要的朋友一起來看下吧2016-12-12Android中SeekBar拖動(dòng)條控件使用方法詳解
這篇文章主要介紹了Android中SeekBar拖動(dòng)條控件的使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-08-08