gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-02 03:08:10 24 4
gpt4 key购买 nike

我将数据以 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com