java - 从 map 检索数据时获取双方括号

标签 java

我将数据以 String 作为键、JSONArray 作为值的形式存储在 Map 中 但是在检索数据时,我得到了双方括号的值

这是我的程序

import java.util.Iterator;
import java.util.LinkedHashMap;
import java.util.Map;

import com.google.gson.JsonArray;
import com.google.gson.JsonObject;

public class Test {

    public static void main(String args[]) {

        Map<String, JsonArray> datafromdb = new LinkedHashMap<String, JsonArray>();

        JsonArray jsonarray = new JsonArray();
        JsonObject pacs_obj = new JsonObject();
        pacs_obj.addProperty("pac_id", "1235");
        jsonarray.add(pacs_obj);
        String new_catid = "1";

        if (!datafromdb.containsKey(new_catid)) {
            datafromdb.put(new_catid, new JsonArray());
        }

        datafromdb.get(new_catid).add(jsonarray);

        Iterator it = datafromdb.entrySet().iterator();
        JsonArray catarr = new JsonArray();
        while (it.hasNext()) {
            Map.Entry pair = (Map.Entry) it.next();

            JsonArray array = (JsonArray) pair.getValue();

            System.out.println(array);

        }

    }

}

当我运行上面的程序时,输出是

[[{"pac_id":"1235"}]]

您能否告诉我如何检索此问题

最佳答案

你有两个方括号,因为你创建了两个数组: 这里:

JsonArray jsonarray = new JsonArray();
JsonObject pacs_obj = new JsonObject();
pacs_obj.addProperty("pac_id", "1235");
jsonarray.add(pacs_obj);

这里:

if (!datafromdb.containsKey(new_catid)) {
    datafromdb.put(new_catid, new JsonArray());
}
datafromdb.get(new_catid).add(jsonarray);

只需删除其中一个数组,例如:

if (!datafromdb.containsKey(new_catid)) {
    datafromdb.put(new_catid, jsonarray);
}

关于java - 从 map 检索数据时获取双方括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41439650/

相关文章:

java - 设计使用http请求的应用程序的方法

Java:Android:SQLite:使用 For 循环执行多次插入

java - 如何在 spring 项目中为实体类和 DTO 自动生成 Junit 测试用例

java - Ionic 3 Android 的新 apk 不会更新。给出 "app not installed. The package appears to be corrupt"

java - 如何正确使用JavaFX TableView和ObservableList类?

java - Spring 数据JPA : extend a JPA Query generically

java - 使用方向键遍历 JMenuBar 时跳过禁用的 JMenu

java - 使用 Lambdaj 对 Map/EntrySet 进行排序

java - 为什么函数会在循环中被多次调用?

java - 在 Java 中如何找到通往这棵树的路径数?