【问题标题】:how to add json array to json object dynamically onclick in android?如何在android中动态地将json数组添加到json对象?
【发布时间】:2019-08-02 11:23:13
【问题描述】:

我正在尝试将 JSON 数组添加到 Android 中单击事件的 JSON 对象。怎么做?有什么建议吗?

我有多个基于条件的 JSON 数组。当我单击某个特定 JSON 数组应更新为通用 JSON 对象的内容时。我能够在单击元素时创建 JSON 数组并将其添加到对象。

if (seat_name.equals("L2")) {
        try {
            l2.put("seat_name", seat_name);
            l2_array.put(l2);
            l2_obj.put("L2", l2_array);
            Log.d("L2--",""+l2_obj.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    } else if (seat_name.equals("L3")) {
        try {
            l3.put("seat_name", seat_name);
            l3_array.put(l3);
            l3_obj.put("L3", l3_array);
            Log.d("L3--",""+l3_obj.toString());
        } catch (JSONException e) {
            e.printStackTrace();
        }
    }

我可以为对象创建一个数组。我想要的是在单击不同元素时将数组添加到对象中。 当我单击第一个元素时,它会给我正确的 JSON 输出。但是当我单击第二个元素时,第二个数组会覆盖第一个数组并使用相同的数据而不是第一个和第二个数组创建新的 JSON 对象。

【问题讨论】:

  • 你提供的代码是onClick方法吗?

标签: android android-json


【解决方案1】:

如果你想要两个数组在同一个对象中,那么你必须在这两种情况下使用一个公共对象:

if (seat_name.equals("L2")) {
    try {
        l2.put("seat_name", seat_name);
        l2_array.put(l2);
        common_obj.put("L2", l2_array);
        Log.d("L2--",""+ common_obj.toString());
    } catch (JSONException e) {
        e.printStackTrace();
    }
} else if (seat_name.equals("L3")) {
    try {
        l3.put("seat_name", seat_name);
        l3_array.put(l3);
        common_obj.put("L3", l3_array);
        Log.d("L3--",""+ common_obj.toString());
    } catch (JSONException e) {
        e.printStackTrace();
    }
  }
}

【讨论】:

    猜你喜欢
    • 2023-04-02
    • 2011-11-21
    • 2020-02-22
    • 1970-01-01
    • 2019-07-16
    • 1970-01-01
    • 2018-07-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多