如何在 android java 中解析 json 对象中的数组?
How to parse array inside json object in android java?
如果 json 数据如下所示,如何在 json 对象中显示数组数据。我想显示成分和步骤的数组数据。这是我要获取数据的完整 API 地址 https://masak-apa-tomorisakura.vercel.app/api/recipe/resep-nasi-bakar-ayam
我尝试了几种方法,但我找不到如何正确实施它。
这是我的 json 模型。
@SerializedName("ingredient")
@Expose
Ingredient ingredient = null;
public Ingredient getIngredient() {
return ingredient;
}
public void setIngredient(Ingredient ingredient) {
this.ingredient = ingredient;
}
这是我用来显示数据的代码
public void LoadData() {
Call<ResultsResponse> call = Config.getInstance().getApi().results(kunci);
call.enqueue(new Callback<ResultsResponse>() {
@Override
public void onResponse(Call<ResultsResponse> call, Response<ResultsResponse> response) {
shimmerFrameLayout.startShimmer();
detailJudul.setText(response.body().getResults().getTitle());
detailWaktu.setText(response.body().getResults().getTimes());
detailKesulitan.setText(response.body().getResults().getDificulty());
detailPorsi.setText(response.body().getResults().getServings());
detailDeskripsi.setText(response.body().getResults().getIngredient());
detailAuthor.setText(response.body().getResults().getAuthor().getUser());
Glide.with(DetailResepActivity.this)
.load(response.body().getResults().getThumb())
.apply(new RequestOptions().override(400, 400))
.into(detailGambar);
//Intent Baca Resep di browser
llVisitWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = ("https://www.masakapahariini.com/resep/" + kunci);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
shimmerFrameLayout.setVisibility(View.GONE);
}
@Override
public void onFailure(Call<ResultsResponse> call, Throwable t) {
Log.d("Hasil", t.getMessage());
}
});
//Intent kembali ke MainActivity
RelativeLayout ivBack=findViewById(R.id.back);
ivBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(), MainActivity.class);
startActivity(i);
}
});
}
这是android工作室显示的错误
谢谢,我希望有人给出一个示例项目,在 json 对象中显示数组数据,就像我上面的问题。
更新
感谢 Gralls,我可以通过创建一个新字符串并实现来显示数组数据
String ingredient= response.body().getResults().getIngredient().toString();
detailDeskripsi.setText(ingredient);
将其放入先前创建的字符串中。那么如何让数据成分可以列表的形式呢?
我没有示例项目,但成分是字符串数组。所以不用
@SerializedName("ingredient")
@Expose
Ingredient ingredient = null;
你应该将数组解析为某种列表
@SerializedName("ingredient")
List<String> ingredient = null;
希望对您有所帮助:)
如果 json 数据如下所示,如何在 json 对象中显示数组数据。我想显示成分和步骤的数组数据。这是我要获取数据的完整 API 地址 https://masak-apa-tomorisakura.vercel.app/api/recipe/resep-nasi-bakar-ayam
我尝试了几种方法,但我找不到如何正确实施它。
这是我的 json 模型。
@SerializedName("ingredient")
@Expose
Ingredient ingredient = null;
public Ingredient getIngredient() {
return ingredient;
}
public void setIngredient(Ingredient ingredient) {
this.ingredient = ingredient;
}
这是我用来显示数据的代码
public void LoadData() {
Call<ResultsResponse> call = Config.getInstance().getApi().results(kunci);
call.enqueue(new Callback<ResultsResponse>() {
@Override
public void onResponse(Call<ResultsResponse> call, Response<ResultsResponse> response) {
shimmerFrameLayout.startShimmer();
detailJudul.setText(response.body().getResults().getTitle());
detailWaktu.setText(response.body().getResults().getTimes());
detailKesulitan.setText(response.body().getResults().getDificulty());
detailPorsi.setText(response.body().getResults().getServings());
detailDeskripsi.setText(response.body().getResults().getIngredient());
detailAuthor.setText(response.body().getResults().getAuthor().getUser());
Glide.with(DetailResepActivity.this)
.load(response.body().getResults().getThumb())
.apply(new RequestOptions().override(400, 400))
.into(detailGambar);
//Intent Baca Resep di browser
llVisitWeb.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String url = ("https://www.masakapahariini.com/resep/" + kunci);
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});
shimmerFrameLayout.setVisibility(View.GONE);
}
@Override
public void onFailure(Call<ResultsResponse> call, Throwable t) {
Log.d("Hasil", t.getMessage());
}
});
//Intent kembali ke MainActivity
RelativeLayout ivBack=findViewById(R.id.back);
ivBack.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(v.getContext(), MainActivity.class);
startActivity(i);
}
});
}
这是android工作室显示的错误
谢谢,我希望有人给出一个示例项目,在 json 对象中显示数组数据,就像我上面的问题。
更新
感谢 Gralls,我可以通过创建一个新字符串并实现来显示数组数据
String ingredient= response.body().getResults().getIngredient().toString();
detailDeskripsi.setText(ingredient);
将其放入先前创建的字符串中。那么如何让数据成分可以列表的形式呢?
我没有示例项目,但成分是字符串数组。所以不用
@SerializedName("ingredient")
@Expose
Ingredient ingredient = null;
你应该将数组解析为某种列表
@SerializedName("ingredient")
List<String> ingredient = null;
希望对您有所帮助:)