使用多个对象发送Json数组的数据

时间:2018-02-20 14:32:22

标签: android mysql

val parentModel = realm.where<ParentModel>().equalTo("uid", uid).findFirst()
val request = realm.where<RealmRequests>().equalTo("id", id).findFirst()
if(parentModel != null && request != null) {
    parentModel.realmRequest?.remove(request)
}

和相应的json是 -

 JSONArray jsonArray = jo.getJSONArray("products_list");
                        productList = new ArrayList<>();
                        String ProductName = null;
                        String ProductQTY = null;
                        String ProductCost = null;
                        for (int i = 0; i < jsonArray.length(); i++) {
                            JSONObject jsonObject2 = jsonArray.getJSONObject(i);
                            ProductName = jsonObject2.getString("product_name");
                            ProductQTY = jsonObject2.getString("product_quantity");
                            ProductCost = jsonObject2.getString("product_cost");
                        }

                        Pname = ProductName;
                        Pqty = ProductQTY;
                        Pcost = ProductCost;



 SaveProduct(BillNo, Pname, Pqty, Pcost);

我正在尝试制作一个Android应用程序,我正在扫描二维码并以json格式获取输出我想将一个带有多个对象的数组发送到Mysql数据库但是当我向数据库发送值时我是最后一个对象的值是插入数据库。如何将数组的所有对象插入数据库?

如何将所有对象插入Mysql数据库。

3 个答案:

答案 0 :(得分:0)

你打电话给SaveProduct(BillNo, Pname, Pqty, Pcost);     在for循环之后,你得到最后的索引值。确保你的方法应该在循环中。

    for (int i = 0; i < jsonArray.length(); i++) {
                                JSONObject jsonObject2 = jsonArray.getJSONObject(i);
                                ProductName = jsonObject2.getString("product_name");
                                ProductQTY = jsonObject2.getString("product_quantity");
                                ProductCost = jsonObject2.getString("product_cost");

SaveProduct(BillNo, ProductName, ProductQTY, ProductCost);
                            }

答案 1 :(得分:0)

所以你需要在你的循环上进行保存调用(json数组长度)。

    String BillNo = jo.optString("gstin_no");
    for (int i = 0; i < jsonArray.length(); i++) {
        JSONObject jsonObject2 = jsonArray.optJSONObject(i);
        String ProductName = jsonObject2.optString("product_name");
        String ProductQTY = jsonObject2.optString("product_quantity");
        String ProductCost = jsonObject2.optString("product_cost");

        SaveProduct(BillNo, ProductName, ProductQTY, ProductCost);
    }

答案 2 :(得分:0)

我建议Gson Library以获得更好的可读代码

首先,将其添加到您的依赖项

implementation 'com.google.code.gson:gson:2.8.2

其次,创建产品模型类

public class Product {
  private String product_name;
  private String product_quantity;
  private String product_cost;
}

只需使用这些行更改代码

Gson gson = new Gson();
Type listType = new TypeToken<List<Product>>() {}.getType();
List<Product> productsList = new Gson().fromJson(jsonArray, listType);

然后你可以用数行和更好的性能将productsList保存在数据库中更好的代码