这是我对Web服务的JSONArray响应:
[
{
"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;
}
}
如果您遇到任何问题,请告诉我。
问题内容: 我有一个像这样的JSON文件: 在文件具有根元素之前,我将使用: 代码,但我不认为如何将类编码为根元素是一个数组。 我试过使用: 与: 但是还没有运气。使用这种方法我还能怎么读呢? PS我有这个工作使用: 但是我更想知道如何使用这两种方法(如果可能)。 问题答案: 问题是由放置在数组中的JSON对象(在 每种 情况下)的末尾逗号引起的: 如果删除它们,您的数据将成为 和 应该工作正常。
附言:我用这个来工作: 但我更希望知道如何做到这一点(如果可能的话)与这两种方法。
问题内容: 我在解析从javascript获取的JSON时遇到问题。JSON的格式是这样的: 到目前为止,我已经能够做到这一点: 但是我现在还需要用这些位置创建一个类。我一直在上课,因为我先尝试打印输出,但是我无法进一步细分它。我收到此错误消息: java.lang.IllegalStateException:这不是JSON数组。 我的代码是这样的: 我也尝试过这种方式: 在这种情况下,我得到:
问题内容: 但是我无法从中得到答案。上面链接的答案: 它运作良好,但我想对泛型使用隐式运算符。见下文: 然后,我尝试将Class参数传递给方法: 然后出现一个错误: 谁能告诉我为什么会出现此错误?TypeToken类不支持隐式运算符吗? 问题答案: 您可以这样:
问题内容: 我有这个json数组: 我有这个类来保存数据: 我正在尝试将json转换为MapData对象的列表: 但是我得到这个错误: 我究竟做错了什么? 问题答案: 我怀疑方法调用返回错误的类型。它应该返回而不是。 就像是: 在这个要点中,我有一个很好的例子说明了您的问题
问题内容: 我想解析JSON数组并使用gson。首先,我可以记录JSON输出,服务器清楚地响应客户端。 这是我的JSON输出: 我尝试了这种结构进行解析。一个类,该类取决于单个JSONArray 和所有JSONArray。 上课时间: 当我尝试使用gson时,没有错误,没有警告,也没有日志: 怎么了,我该怎么解决? 问题答案: 您可以直接解析直接类,不需要再花更多时间包装您的类,也不需要新的类: