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
相關文章
- java 請求HTTP返回json集合,物件處理方式JavaHTTPJSON物件
- eval() JSON轉換為物件JSON物件
- json字串與物件互相轉換JSON字串物件
- bat批處理轉換成exe檔案BAT
- JSON字串轉換為物件直接量JSON字串物件
- Java物件轉換成MapJava物件
- 【原創】如何優雅的轉換Bean物件Bean物件
- fastjson: json物件,json物件陣列,javabean物件,json字串之間的相互轉化ASTJSON物件陣列JavaBean字串
- JavaScript將物件轉換為JSON格式字串JavaScript物件JSON字串
- eval()將JSON格式字串轉換為物件JSON字串物件
- PHP 物件轉換成陣列PHP物件陣列
- 如何將GIMP(GNU 影像處理程式)轉換成PhotoShop?
- json字串轉義格式化後再轉換處理demo StringEscapeUtils.unescapeJavaJSON字串Java
- 統一返回物件和異常處理(二)物件
- 統一返回物件和異常處理(一)物件
- RestTemplate處理巢狀的複雜返回物件REST巢狀物件
- 利用實體bean物件批量資料傳輸處理Bean物件
- Json,String,Map之間的轉換JSON
- JSON 與 Java 物件之間的轉化JSONJava物件
- Javascrip 之 字串處理 & 定時器 & 型別轉換Java字串定時器型別
- Java程式設計師從笨鳥到菜鳥(五十二) 配置檔案實現將返回 POJO 類直接轉換成 json 物件Java程式設計師POJOJSON物件
- JS json字串轉物件、物件轉字串JSON字串物件
- web api 返回Json資料中人格式帶T處理WebAPIJSON
- .NET Core 處理 WebAPI JSON 返回煩人的null為空WebAPIJSONNull
- 使用@ResponseBody物件轉json和@RequestBody進行json轉物件案例物件JSON
- MySql之json_extract函式處理json欄位MySqlJSON函式
- 中文被 json_encode 編碼成 unicode 之後如何轉換回中文JSONUnicode
- Keras 轉換成 Tensorflow 模型格式並使用Keras模型
- 資料匯入與預處理實驗二---json格式檔案轉換JSON
- Json物件與Json字串互轉JSON物件字串
- 2024-03-29 js練習之陣列物件轉換成鍵值對物件JS陣列物件
- Spring Boot之自定義JSON轉換器Spring BootJSON
- 把JSON資料格式轉換為Python的類物件JSONPython物件
- Python處理JSONPythonJSON
- js物件轉json字串物件JSON字串
- simplexml_load_string 將xml轉換成物件XML物件
- Java學習--xml文字轉換成Java物件JavaXML物件
- Java如何將Object轉換成指定Class物件JavaObject物件