如何使用 Root POST 改造返回 JSONArray [英] How to POST retrofit return JSONArray with Root

查看:50
本文介绍了如何使用 Root POST 改造返回 JSONArray的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆