当前位置: 首页 > 面试题库 >

从地图检索数据时获取双方括号

马银龙
2023-03-14
问题内容

我将数据存储在Map中,以字符串作为键,以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);
}


 类似资料:
  • 问题内容: 我正在wxPython中编写一个小应用程序,它具有一个matplotlib图形(使用wxagg后端)面板。我想为用户添加将图中当前绘制的X,Y数据导出到文本文件的功能。有无创方法可以做到这一点吗?我已经搜索了很多,似乎什么也找不到,尽管我觉得它非常简单而且就在我的面前。 我绝对可以获取数据,并在绘制数据时将其存储在某个位置,并使用它-但这会侵入我的代码的较低级别。如果我可以做些简单的事

  • Iam是JPA的新手,尝试创建EJB 3.0+JPA(hibernate)应用程序。当iam将数据持久化到数据库中时,出现以下异常。 sessionBean方法: 客户类(实体类)

  • 我很难找到如何在Spring中从@manytomany关系中检索数据。我遇到了无限递归问题,并尝试了一些解决方案,比如使用@JSONIgnoreProperties,但都没有成功。 一个用户可以有多个组,一个组可以有多个用户。我可以将用户添加到组中,但是当涉及到检索与用户关联的所有组时,我会从无限递归中得到堆栈溢出。 理想情况下,我希望能够发送带有用户ID的get请求,然后检索与该用户关联的所有G

  • 如何从数据库中检索数据,其中数据的形式为 我需要没有HTML标签和其他样式的值。我只想要里面的文字。我可以用PHP检索它。 提前感谢。

  • 我有下一个带嵌套括号的字符串: 我想用打印出来的每个括号的值填充一个数组:

  • 我正在使用SharePreduce进行用户界面设置。 当我想获取的值时,无论它是真是假,都可以播放声音。 但是,当我点击时,即使我将的值更改为false,我总是播放歌曲,你能帮我弄清楚它出了什么问题吗? 正常情况下,我的< code>boolean playSound应该为true或false, 当我单击按钮时,如果playSound为true,则我播放歌曲,否则我不播放它,但似乎永远不会更改此值