如何POST改装返回带有Root的JSONArray



我在使用根/父获取json时遇到问题

Web服务

@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_odotto":"one"}{"id_prodotto":"2","nome_odotto":"两个"}

但需要采取这样的回应:{产品:{id_prodotto;:"1","nome_odotto":"一"}{"id_prodotto":"2","nome_odotto":"两个"}}

我需要做什么?

您可以使用List<Object>,因为您的响应如下。但您需要在Web服务中删除列表。

@POST("products")
Call<ProductListResponse> products(@Body ProductRequest productRequest);

接下来,在中,您需要使用List创建名为ProductListResponse的新模型类。

public class ProductListResponse {
@SerializedName("products")
private List<ProductResponse> product;
}

最新更新