如何 POST 使用 Root 改造 return JSONArray
How to POST retrofit return JSONArray with Root
我在 json 和 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": "一个"}
{ "id_prodotto": "2", "nome_prodotto": "两个"}
但需要采取这样的回应:{ products: { "id_prodotto": "1", "nome_prodotto": "one"}
{ "id_prodotto": "2", "nome_prodotto": "两个"}}
我需要做什么?
您可以使用 List<Object>
因为您的回复是这样的。但是您需要在 Webservice 中删除 List。
@POST("products")
Call<ProductListResponse> products(@Body ProductRequest productRequest);
接下来,您需要使用列表创建名为 ProductListResponse
的新模型 class。
public class ProductListResponse {
@SerializedName("products")
private List<ProductResponse> product;
}
我在 json 和 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": "一个"} { "id_prodotto": "2", "nome_prodotto": "两个"}
但需要采取这样的回应:{ products: { "id_prodotto": "1", "nome_prodotto": "one"} { "id_prodotto": "2", "nome_prodotto": "两个"}}
我需要做什么?
您可以使用 List<Object>
因为您的回复是这样的。但是您需要在 Webservice 中删除 List。
@POST("products")
Call<ProductListResponse> products(@Body ProductRequest productRequest);
接下来,您需要使用列表创建名为 ProductListResponse
的新模型 class。
public class ProductListResponse {
@SerializedName("products")
private List<ProductResponse> product;
}