如何使用 Root POST 改造返回 JSONArray [英] How to POST retrofit return JSONArray with Root
问题描述
我在使用 root/parent 获取 json 时遇到问题
i have a problem to take json with root/parent
网络服务
@POST("products")
Call<List<ProductResponse>> products(@Body ProductRequest productRequest);
我的响应模型
public class ProductResponse{
private String id_prodotto;
private String nome_prodotto;
}我的电话回复:
public void products(String s){
ProductRequest productRequest = new ProductRequest();
productRequest.setToken(s);
Call <List<ProductResponse>> pR =
ApiClient.getUserService().products(productRequest);
pR.enqueue(new Callback<List<ProductResponse>>() {
@Override
public void onResponse(Call<List<ProductResponse>> call, retrofit2.Response<List<ProductResponse>> response) {
if(response.isSuccessful()){
productList = response.body();
recyclerViewProdotti.setLayoutManager(new LinearLayoutManager(getContext()));
recyclerViewProdotti.setHasFixedSize(true);
adapterProducts = new AdapterProducts(context.getApplicationContext(),productList,tkn);
recyclerViewProdotti.setAdapter(adapterProducts);
}else {
Toast.makeText(context,"Fail Products " + tkn, Toast.LENGTH_LONG).show();
}
}
@Override
public void onFailure(Call<List<ProductResponse>> call, Throwable t) {
Log.e("PR", t.getLocalizedMessage());
}
}
当我的回答是:
{ "id_prodotto": "1", "nome_prodotto": "one"}{ "id_prodotto": "2", "nome_prodotto": "两个"}
{ "id_prodotto": "1", "nome_prodotto": "one"} { "id_prodotto": "2", "nome_prodotto": "two"}
但需要采取这样的回应:{ products: { "id_prodotto": "1", "nome_prodotto": "one"}{ "id_prodotto": "2", "nome_prodotto": "两个"}}
But need take this response: { products: { "id_prodotto": "1", "nome_prodotto": "one"} { "id_prodotto": "2", "nome_prodotto": "two"}}
我需要做什么?
推荐答案
你可以使用 List
因为你的反应是这样的.但是您需要在 Web 服务中删除 List.
You can use List<Object>
since your response is like. But you need to remove List at the Webservice.
@POST("products")
Call<ProductListResponse> products(@Body ProductRequest productRequest);
接下来,您需要使用 List 创建名为 ProductListResponse
的新模型类.
Next, at you need to create new model class named ProductListResponse
with using List.
public class ProductListResponse {
@SerializedName("products")
private List<ProductResponse> product;
}
这篇关于如何使用 Root POST 改造返回 JSONArray的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!