java - 将 HashMap 的 ArrayList 转换为 GSON JsonArray

标签 java android arrays gson

我正在尝试将以下 HashMap 的 Arraylist 转换为 JsonArray,以便我可以将其添加到我的 JsonObject 中。

我创建了三个包含值对的 HashMap ,然后将每个 HashMap 添加到必须转换为 JsonArray 的 ArrayList 中,以便它可以被 GSON JsonObject 接受。

我尝试将其转换为字符串,但没有给我提供首选的输出。还尝试将该 String 转换回 JsonArray,但没有任何运气。

     HashMap<String, String> chemo = new HashMap<>();
     HashMap<String, String> cremation = new HashMap<>();
     HashMap<String, String> travel = new HashMap<>();

     ArrayList<HashMap<String, String>> x = new ArrayList<>();

        private void createAdditionalPackages() {

        if (chemoBtn.isChecked()) {
            chemo.put("name", "chemo");
            chemo.put("price", chemoButtonPrice);
            x.add(chemo);

        }

        if (cremBtn.isChecked()) {

            cremation.put("name", "crematie");
            cremation.put("price", cremationButtonPrice);
            x.add(cremation);

        }

        if (travenBtn.isChecked()) {

            travel.put("name", "reisverz");
            travel.put("price", travelButtonPrice);
            x.add(travel);

        }

        List<JsonObject> jsonObjectList = new ArrayList<>() ;
        for(HashMap<String, String> data : x){
            JsonObject object = new JsonObject(data);
            jsonObjectList.add(object);
        }

        JsonArray additional_coverages = new JsonArray(jsonObjectList);

        // Toast.makeText(this, additional_coverages.toString(), Toast.LENGTH_SHORT).show();

        String json = new Gson().toJson(x);



        Intent submitUserInformation = new Intent(PetplanAdditionalPlansActivity.this, 
 AnimalInsuranceActivityUserInfo.class);
        submitUserInformation.putExtra("coverages", json);
            submitUserInformation.putExtra("animal_age", animalAge);
            submitUserInformation.putExtra("additional_coverages", x);
            startActivity(submitUserInformation);
        }

有什么想法吗?

最佳答案

试试这个。

        Type type = new TypeToken<ArrayList<HashMap<String, String>>>(){}.getType();
        JsonElement element = new Gson().toJsonTree(x, type);
        JsonArray jsonArray = element.getAsJsonArray();

关于java - 将 HashMap 的 ArrayList 转换为 GSON JsonArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61220004/

相关文章:

java - (编译:compileIncremental) javac returned nonzero exit code

java - 如何添加随缩放和位置而改变大小/位置的覆盖

java - 如何制作网络服务并将android应用程序与其连接

将数组复制到结构

java - 如何在二维数组中留下某种标记,告诉程序在这个位置执行某些操作

java - TomEE 中的命名上下文和 ejb-jar

java - 从特定字节开始读取

android - LinearLayout的相邻

arrays - Swift:定义数组内部具有不同类型的新三维数组

c++ - 编译时通过索引访问类模板的成员