内容简介:翻译自:https://stackoverflow.com/questions/42623437/parse-json-array-response-using-retrofit-gson
这是来自Web服务的 JSON
Array响应:
[ { "sponsors": [ { "leg_id": "NYL000067", "type": "primary", "name": "AUBRY" }, { "leg_id": "NYL000171", "type": "cosponsor", "name": "PERRY" }, { "leg_id": "NYL000066", "type": "cosponsor", "name": "ARROYO" }, { "leg_id": "NYL000223", "type": "cosponsor", "name": "BARRETT" }, { "leg_id": "NYL000312", "type": "cosponsor", "name": "STECK" }, { "leg_id": "NYL000180", "type": "cosponsor", "name": "RIVERA" }, { "leg_id": "NYL000114", "type": "cosponsor", "name": "GOTTFRIED" }, { "leg_id": "NYL000091", "type": "cosponsor", "name": "COOK" }, { "leg_id": "NYL000126", "type": "cosponsor", "name": "JAFFEE" }, { "leg_id": "NYL000327", "type": "cosponsor", "name": "DAVILA" }, { "leg_id": "NYL000144", "type": "cosponsor", "name": "LUPARDO" }, { "leg_id": null, "type": "cosponsor", "name": "SEPULVEDA", "committee_id": null }, { "leg_id": "NYL000290", "type": "cosponsor", "name": "MOSLEY" }, { "leg_id": "NYL000167", "type": "cosponsor", "name": "ORTIZ" }, { "leg_id": "NYL000170", "type": "cosponsor", "name": "PEOPLES-STOKES" }, { "leg_id": "NYL000221", "type": "cosponsor", "name": "SKARTADOS" }, { "leg_id": "NYL000216", "type": "cosponsor", "name": "QUART" }, { "leg_id": "NYL000208", "type": "cosponsor", "name": "WEPRIN" }, { "leg_id": "NYL000186", "type": "cosponsor", "name": "ROSENTHAL" }, { "leg_id": "NYL000139", "type": "cosponsor", "name": "LIFTON" }, { "leg_id": "NYL000064", "type": "cosponsor", "name": "ABINANTI" }, { "leg_id": "NYL000173", "type": "cosponsor", "name": "PRETLOW" }, { "leg_id": "NYL000339", "type": "cosponsor", "name": "BICHOTTE" }, { "leg_id": null, "type": "cosponsor", "name": "BARRON", "committee_id": null }, { "leg_id": "NYL000341", "type": "cosponsor", "name": "WALKER" }, { "leg_id": "NYL000355", "type": "cosponsor", "name": "BLAKE" }, { "leg_id": "NYL000185", "type": "cosponsor", "name": "RODRIGUEZ" }, { "leg_id": "NYL000259", "type": "cosponsor", "name": "FAHY" }, { "leg_id": "NYL000203", "type": "cosponsor", "name": "TITONE" }, { "leg_id": "NYL000286", "type": "cosponsor", "name": "MCDONALD" }, { "leg_id": "NYL000081", "type": "cosponsor", "name": "CAHILL" }, { "leg_id": "NYL000421", "type": "cosponsor", "name": "HARRIS" }, { "leg_id": "NYL000338", "type": "cosponsor", "name": "JOYNER" }, { "leg_id": "NYL000448", "type": "cosponsor", "name": "JENNE" }, { "leg_id": "NYL000070", "type": "cosponsor", "name": "BENEDETTO" }, { "leg_id": "NYL000310", "type": "cosponsor", "name": "SOLAGES" }, { "leg_id": "NYL000357", "type": "cosponsor", "name": "RICHARDSON" }, { "leg_id": "NYL000324", "type": "cosponsor", "name": "PICHARDO" }, { "leg_id": "NYL000423", "type": "cosponsor", "name": "HYNDMAN" }, { "leg_id": "NYL000313", "type": "cosponsor", "name": "STIRPE" }, { "leg_id": "NYL000131", "type": "cosponsor", "name": "KAVANAGH" }, { "leg_id": "NYL000204", "type": "cosponsor", "name": "TITUS" }, { "leg_id": "NYL000275", "type": "cosponsor", "name": "KIM" }, { "leg_id": "NYL000195", "type": "cosponsor", "name": "SIMOTAS" }, { "leg_id": "NYL000293", "type": "cosponsor", "name": "OTIS" }, { "leg_id": "NYL000220", "type": "cosponsor", "name": "MAYER" }, { "leg_id": "NYL000344", "type": "cosponsor", "name": "JEAN-PIERRE" } ], "id": "NYB00099404" }, { "sponsors": [ { "leg_id": "NJL000113", "type": "primary", "name": "Vainieri Huttle, Valerie" } ], "id": "NJB00038817" }, { "sponsors": [ { "leg_id": "NYL000208", "type": "primary", "name": "WEPRIN" } ], "id": "NYB00066288" }, { "sponsors": [ { "leg_id": "NJL000083", "type": "primary", "name": "Jasey, Mila M." }, { "leg_id": "NJL000086", "type": "primary", "name": "Caputo, Ralph R." }, { "leg_id": "NJL000046", "type": "primary", "name": "Watson Coleman, Bonnie" }, { "leg_id": "NJL000177", "type": "primary", "name": "Pintor Marin, Eliana" }, { "leg_id": "NJL000164", "type": "primary", "name": "Sumter, Shavonda E." }, { "leg_id": "NJL000104", "type": "primary", "name": "Oliver, Sheila Y." }, { "leg_id": "NJL000095", "type": "primary", "name": "Mainor, Charles" }, { "leg_id": "NJL000165", "type": "primary", "name": "Wimberly, Benjie E." }, { "leg_id": "NJL000016", "type": "cosponsor", "name": "Fuentes, Angel" }, { "leg_id": "NJL000085", "type": "cosponsor", "name": "Tucker, Cleopatra G." }, { "leg_id": "NJL000067", "type": "cosponsor", "name": "Stender, Linda" }, { "leg_id": "NJL000114", "type": "cosponsor", "name": "Johnson, Gordon M." }, { "leg_id": "NJL000082", "type": "cosponsor", "name": "McKeon, John F." }, { "leg_id": "NJL000129", "type": "cosponsor", "name": "Singleton, Troy" } ], "id": "NJB00030216" }, { "sponsors": [ { "leg_id": "NYL000088", "official_type": "SPONSOR", "type": "primary", "name": "Clark" }, { "leg_id": "NYL000171", "official_type": "COSPNSR", "type": "cosponsor", "name": "Perry" } ], "id": "NYB00035573" }, { "sponsors": [ { "leg_id": "NJL000111", "type": "primary", "name": "Schaer, Gary S." }, { "leg_id": "NJL000018", "type": "primary", "name": "Lampitt, Pamela R." }, { "leg_id": "NJL000105", "type": "primary", "name": "Giblin, Thomas P." }, { "leg_id": "NJL000171", "type": "primary", "name": "Mosquera, Gabriela M." }, { "leg_id": "NJL000011", "type": "cosponsor", "name": "Moriarty, Paul D." }, { "leg_id": "NJL000165", "type": "cosponsor", "name": "Wimberly, Benjie E." }, { "leg_id": "NJL000010", "type": "cosponsor", "name": "Madden, Fred H." }, { "leg_id": "NJL000007", "type": "cosponsor", "name": "Sweeney, Stephen M." }, { "leg_id": "NJL000039", "type": "cosponsor", "name": "Thompson, Samuel D." }, { "leg_id": "NJL000112", "type": "cosponsor", "name": "Weinberg, Loretta" }, { "leg_id": "NJL000087", "type": "cosponsor", "name": "Ruiz, M. Teresa" } ], "id": "NJB00021785" }, { "sponsors": [ { "leg_id": "NYL000138", "official_type": "SPONSOR", "type": "primary", "name": "Lentol" } ], "id": "NYB00010409" }, { "sponsors": [ { "leg_id": "NJL000028", "type": "primary", "name": "Gove, DiAnne C." }, { "leg_id": "NJL000027", "type": "primary", "name": "Rumpf, Brian E." }, { "leg_id": "NJL000099", "type": "cosponsor", "name": "Prieto, Vincent" } ], "id": "NJB00002928" }, { "sponsors": [ { "leg_id": "NJL000094", "type": "primary", "name": "Chiappone, Anthony" }, { "leg_id": "NJL000034", "type": "cosponsor", "name": "Angelini, Mary Pat" } ], "id": "NJB00010952" } ]
这是ApiInterface.java
public interface ApiInterface { @GET("bills/") Call<SponsorsResult> getListOfSponsors(@Query("bill_id") String billId , @Query("session") String session, @Query("fields") String field); }
这里是方法调用&回应:
ApiInterface apiService = ApiClient.getClient().create(ApiInterface.class); Call<SponsorsResult> call = apiService.getListOfSponsors(AppConstants.ASSEMBLY_BILL_ID,AppConstants.SESSION,AppConstants.FIELD); call.enqueue(new Callback<SponsorsResult>() { @Override public void onResponse(Call<SponsorsResult> call, Response<SponsorsResult> response) { Log.d(TAG,"Number :"+response.raw()); List<Sponsor> sponsors = response.body().getSponsors(); Log.d(TAG,"Number of sponsors :"+ sponsors.size()); } @Override public void onFailure(Call<SponsorsResult> call, Throwable t) { t.printStackTrace(); } });
截至目前,它失败了&这是logcat输出:
com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2 path $
它无法执行响应.指导我解析这个回复.
请尝试使用这个
@FormUrlEncoded @POST("api/sponsors") Call<List<SponsorsResult>> getStatesAndDistrict( @Field("xyz") String field1 ); Call <List<SponsorsResult>> call = service.getSponsorsValue(); call.enqueue(new Callback<List<SponsorsResult>>() { @Override public void onResponse(Call<List<SponsorsResult>> call, Response<List<SponsorsResult>> response) { List<SponsorsResult> rs = response.body(); } @Override public void onFailure(Call<List<SponsorsResult>> call, Throwable t) { } }); class SponsorsResult { @SerializedName("sponsors") private List<SponsorsValue> sponsors; public List<SponsorsValue> getSponsors() { return sponsors; } } class SponsorsValue{ @SerializedName("leg_id") @Expose private String legId; @SerializedName("type") @Expose private String type; @SerializedName("name") @Expose private String name; public String getLegId() { return legId; } public void setLegId(String legId) { this.legId = legId; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
如果您遇到任何问题,请告诉我.
翻译自:https://stackoverflow.com/questions/42623437/parse-json-array-response-using-retrofit-gson
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- ThinkPHP 5.1.21 发布,增加下载响应和数组查询对象
- ThinkPHP5.1.21版本,增加下载响应和数组查询对象
- 理解响应者和响应链如何处理事件
- 从源码解析vue的响应式原理-响应式的整体流程
- C语言指针数组和数组指针
- 数组 – 如何在Swift中将数组拆分成两半?
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。