Android之Retrofit2.0 處理返回json報文並轉換成bean物件
本文主要介紹在Retrofit 2.0中,如何將伺服器返回的json字串轉換成bean物件。
參考部落格:
實現效果:
使用姿勢:
1. 使用教程
- 新增依賴
- compile ‘com.squareup.retrofit2:retrofit:2.2.0’
- compile ‘com.squareup.retrofit2:converter-gson:2.2.0’
- AndroidStudio新增Gson外掛——GsonFormat
2. 使用API
- 所用api:http://www.mrsorrow.xin/pro/rank_querySpecRankByUniv?university.univCode=10280&page=1
- 功能:根據高校程式碼進行學科專業類排名
-
返回json如下:
{ "rows": [ { "id": 1893, "specCode": "", "specName": "冶金工程類", "univCode": "10280", "univName": "上海大學", "univRank": "5", "univScore": "78" }, { "id": 328, "specCode": "0303", "specName": "社會學類", "univCode": "10280", "univName": "上海大學", "univRank": "8", "univScore": "77" }, { "id": 828, "specCode": "0503", "specName": "新聞傳播學類", "univCode": "10280", "univName": "上海大學", "univRank": "10", "univScore": "77" }, { "id": 3959, "specCode": "1303", "specName": "戲劇與影視學類", "univCode": "10280", "univName": "上海大學", "univRank": "4", "univScore": "77" }, { "id": 396, "specCode": "0305", "specName": "馬克思主義理論類", "univCode": "10280", "univName": "上海大學", "univRank": "17", "univScore": "76" } ] }
3. 入門使用Retrofit
-
定義介面(封裝URL地址和資料請求) :
@GET("rank_querySpecRankByUniv") Call<ResponseBody> querySpecRankByUniv( @Query("university.univCode") String univCode, @Query("page") int page);
-
例項化Retrofit:
Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constant.BASE_URL) .build();
-
通過Retrofit例項建立介面服務物件
QueryRankService service = retrofit.create(QueryRankService.class);
-
ResponseBody中存放著我們請求的資料,呼叫response.body().string()轉化為字串:
Call<ResponseBody> call = service.querySpecRankByUniv("10280", 1); call.enqueue(new Callback<ResponseBody>() { @Override public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) { if(response.isSuccessful()){ try { String result = response.body().string(); mTextView.setText(result); } catch (IOException e) { e.printStackTrace(); } } } @Override public void onFailure(Call<ResponseBody> call, Throwable t) { } });
4. 使用GsonFormat生成Bean
- 新建Bean類——SpecRank.java
- 類中右鍵Generate–》GsonFormat,將json樣例拷貝進AS,點選ok即可
-
生成如下:
5. 使用Gson解析
-
定義介面(封裝URL地址和資料請求) :
@GET("rank_querySpecRankByUniv") Call<SpecRankBean> querySpecRankByUnivUseGson( @Query("university.univCode") String univCode, @Query("page") int page);
-
例項化Retrofit:
Retrofit retrofit = new Retrofit.Builder() .baseUrl(Constant.BASE_URL) .addConverterFactory(GsonConverterFactory.create()) .build();
-
將請求的資料可以直接轉換為我們的Bean,通過各種get方法獲取我們想要的資料:
call.enqueue(new Callback<SpecRankBean>() { @Override public void onResponse(Call<SpecRankBean> call, Response<SpecRankBean> response) { if(response.isSuccessful()){ SpecRankBean bean = response.body(); List<SpecRankBean.RowsBean> list = bean.getRows(); String result = ""; for (SpecRankBean.RowsBean rowsBean : list) { result += rowsBean.getUnivName() + rowsBean.getSpecName() + "\n"; } mTextView.setText(result); } } @Override public void onFailure(Call<SpecRankBean> call, Throwable t) { } });
轉自:https://blog.csdn.net/bskfnvjtlyzmv867/article/details/70667041
相關文章
- 將soap報文(或xml)轉換成物件XML物件
- 將json格式物件轉換成陣列物件JSON物件陣列
- java 請求HTTP返回json集合,物件處理方式JavaHTTPJSON物件
- JavaScript:如何將JSON物件轉換成JSON字串呢JavaScriptJSON物件字串
- javascript如何將字串轉換成json格式物件JavaScript字串JSON物件
- Json串與List、Bean之間的轉換,處理類中List屬性的序列化問題JSONBean
- Android中實現JSON字串和JSON物件的轉換AndroidJSON字串物件
- json字串和js物件之間相互轉換JSON字串物件
- eval() JSON轉換為物件JSON物件
- js把json字串轉成json物件JSON字串物件
- FastJson、Jackson、Gson進行Java物件轉換Json的細節處理ASTJSONJava物件
- js字串與json物件處理字串JSON物件
- java json字串轉換為物件,轉換為listJavaJSON字串物件
- Java物件轉換成MapJava物件
- json字串和json格式物件的轉換JSON字串物件
- json字串與物件互相轉換JSON字串物件
- 資料轉換衝突及轉換過程中大物件的處理物件
- JSON格式字串和物件之間的轉換程式碼JSON字串物件
- [HandyJSON] 在Swift語言中處理JSON - 轉換JSON和ModelJSONSwift
- 【原創】如何優雅的轉換Bean物件Bean物件
- java物件與json物件間的相互轉換Java物件JSON
- 統一返回物件和異常處理(二)物件
- 統一返回物件和異常處理(一)物件
- RestTemplate處理巢狀的複雜返回物件REST巢狀物件
- 如何將GIMP(GNU 影像處理程式)轉換成PhotoShop?
- JSON字串轉換為物件直接量JSON字串物件
- PHP 物件轉換成陣列PHP物件陣列
- 將json字串轉換成list<T>JSON字串
- php json轉換成陣列形式PHPJSON陣列
- 返回物件(轉)物件
- 利用實體bean物件批量資料傳輸處理Bean物件
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- JavaScript將JSON格式字串轉換為物件JavaScriptJSON字串物件
- jQuery物件與DOM物件之轉換jQuery物件
- php陣列轉換為json,json又轉化為php物件。PHP陣列JSON物件
- js 將json字串轉換為json物件的方法解析JSON字串物件
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串