如何在改造中传递嵌套数组?

时间:2017-12-27 12:40:15

标签: android json retrofit2

如何在改进后发布请求中传递嵌套数组。数组是这样的:

"bags": "[[7, 1], [8, 1], [9, 1]]"

Tried List,Map也是JsonObject和JsonArray,但没有运气。

我必须迭代一个CarryBag类的List。下面是一个CarryBag类,必须创建一个这样的格式" bags":" [[7,1],[8,1],[9,1]]"`其中第一个元素是carryBagId,第二个元素是购买数量。

  public class CarryBag {
        @SerializedName("carry_bag_id")
        private String carryBagId;
        @SerializedName("vendor_id")
        private String vendorId;
        @SerializedName("bag_name")
        private String bagName;
        @SerializedName("bag_size")
        private String bagSize;

        @SerializedName("status")
        private String status;
        @SerializedName("BAG_ID")
        private String bagId;
        @SerializedName("Name")
        private String name;
        @SerializedName("Price")
        private String price;
        @SerializedName("Qty")
        private int purchaseQty;
}

2 个答案:

答案 0 :(得分:0)

class MyBag{
  List<List<Integer>> bags;
}


String data = "{\"bags\":[[7, 1],[8, 1], [9, 1]]}";


Gson gson = new Gson();
MyBag bagList = gson.fromJson(firstData, MyBag.class);

传递bagList以进行改造

答案 1 :(得分:0)

你的json结构有嵌入式数组。所以尝试使用以下代码。

try {
                JSONArray bags = new JSONArray(jsonObj.getJSONArray("bags"));
                for (int i = 0; i < bags.length(); i++) {
                    JSONArray jsonArray = bags.getJSONArray(i);
                    for (int j = 0; j < jsonArray.length(); j++) {
                        Log.i(TAG, "VALUES: ["+i+","+j+"]" +jsonArray.getInt(j));
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
相关问题