gpt4 book ai didi

java - 在Retrofit中使用Gson解析JSON

转载 作者:行者123 更新时间:2023-12-02 01:53:36 24 4
gpt4 key购买 nike

我有一个具有以下结构的 JSON 文件:

{
"FLYWEIGHT": [
{
"name": "Henry Cejudo"
},
{
"name": "Sergio Borg"
},.........],
{...},
...]}

我正在努力用 Gson 解析这个。我有以下 UfcRankFighterList 结构:

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);

}

我有以下 RankingsApiRankingsRestAdapter 结构:

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 $

这是由于我构建 UfcRankFighterList 类的方式所致吗?

谢谢! :)

最佳答案

由于您在构建 Retrofit 实例时使用了 GsonConverterFactory,因此已经使用了 Gson 解析,它直接为您提供模型类的引用。您不应该再次解析。

@Override
public void onResponse(Call<FighterList> call, Response<FighterList> response) {
if(response.isSuccessful() {
FighterList data = response.body();
} else {
// Handle error.
}
}

关于java - 在Retrofit中使用Gson解析JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52618338/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com