如何在android改造中发送json数组? [英] how to send json array in android retrofit?
本文介绍了如何在android改造中发送json数组?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我无法将json数组发送到服务器.当我用邮递员原始测试时,可以,成功返回.
I can't send json array to server. When I test in postman raw, it is ok, success return.
Postman Raw;
Postman Raw;
[
{
"product_id": 2,
"name": "Umbrella",
"price": 200,
"quantity": 1,
"totalprice": 200,
"user_id": 1
},
{
"product_id": 1,
"name": "Apple",
"price": 200,
"quantity": 1,
"totalprice": 200,
"user_id": 1
}
]
APIInterface;
APIInterface;
@POST("example/api/order")
Call<JSONArray> postOrder(@Body JSONArray jsonArray);
CartActivity;
CartActivity;
try {
JSONArray jsonArray = new JSONArray();
for (Cart cart : cartList) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("product_id", cart.getProduct_id());
jsonObject.put("name", cart.getName());
jsonObject.put("price", cart.getPrice());
jsonObject.put("quantity", cart.getQuantity());
jsonObject.put("totalprice", cart.getTotalprice());
jsonObject.put("user_id", cart.getUser_id());
jsonArray.put(jsonObject);
}
Log.e("JSONArray", String.valueOf(jsonArray));
} catch (JSONException jse) {
jse.printStackTrace();
}
日志;
E/JSONArray: [{"product_id":1,"name":"Umbrella","price":200,"quantity":1,"totalprice":200,"user_id":1},{"product_id":2,"name":"Apple","price":89,"quantity":1,"totalprice":89,"user_id":1}]
来自服务器的错误消息;
Error Message from server;
{"values":[{"nameValuePairs":{"product_id":1,"name":"Umbrella","price":200,"quantity":1,"totalprice":200,"user_id":1}},{"nameValuePairs":{"product_id":2,"name":"Apple","price":89,"quantity":1,"totalprice":89,"user_id":1}}]}
推荐答案
您可以直接将对象数组作为参数发送.改装将处理转换.像这样更改您的接口方法:
You can directly send the array of objects as parameter. Retrofit will handle the conversion. Change your interface method like this:
@POST("example/api/order")
Call<JSONArray> postOrder(@Body List<Cart> cartList);
选中此链接,您会有所想法.
Check this link, you will get an idea.
这篇关于如何在android改造中发送json数组?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文