![](/img/trans.png)
[英]Android JSON parsing using Retrofit and GSON gets malformed JSON error
[英]Parsing JSON in Retrofit using Gson
我有一個具有以下結構的JSON文件:
{
"FLYWEIGHT": [
{
"name": "Henry Cejudo"
},
{
"name": "Sergio Borg"
},.........],
{...},
...]}
我正在努力與Gson進行分析。 我對UfcRank
和FighterList
具有以下結構:
public class UfcRank {
@SerializedName("name")
private String name;
}
public class FighterList {
@SerializedName("FLYWEIGHT")
public List<UfcRank> FLYWEIGHT;
}
我使用retrofit
來解析:
RankingsApi service = RankingsRestAdapter.getRetrofitInstance().create(RankingsApi.class);
Call<Fighterlist> call = service.getRankingsApi();
call.enqueue(new Callback<FighterList>() {
@Override
public void onResponse(Call<FighterList> call, Response<FighterList> response) {
FighterList data = new Gson().fromJson(response.body().toString(), FighterList.class);
}
我具有RankingsApi
和RankingsRestAdapter
的以下結構:
public interface RankingsApi {
@GET("last_ready_run/data?api_key=XXXXXX")
Call<FighterList> getRankingsApi();
}
public class RankingsRestAdapter {
public static final String RANKINGS_URL = "XXXXXXX"
public static Retrofit retrofit;
public static Retrofit getRetrofitInstance() {
if (retrofit == null) {
retrofit = new retrofit2.Retrofit.Builder()
.baseUrl(RANKINGS_URL)
.addConverterFactor(GsonConverterFactory.create())
.build();
}
return retrofit;
}
}
現在我收到錯誤:
Expected BEGIN_OBJECT but Was STRIng at line 1 column 1 path $
這是由於我如何構造UfcRank
和FighterList
類嗎?
謝謝! :)
由於在構建Retrofit
實例時使用了GsonConverterFactory
,因此已經使用了Gson解析,它可以直接為您提供模型類的引用。 您不應該再次解析。
@Override
public void onResponse(Call<FighterList> call, Response<FighterList> response) {
if(response.isSuccessful() {
FighterList data = response.body();
} else {
// Handle error.
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.