当前位置: 首页 > 知识库问答 >
问题:

用Java将HashMap写入JSON

武成和
2023-03-14

我是Java新手。我一直在从事一个使用Maven和Java1.7的项目。在我的项目中,我有一个HashMap。我想将这个HashMap输出到JSON。目前推荐的方法是什么?

当我在谷歌上搜索时,我有很多选择(比如杰克逊)。然而,我不确定我应该用什么。另外,我想使用一个可以通过Maven访问的图书馆。

非常感谢。

共有3个答案

孟乐逸
2023-03-14

的确,java有很多json解析器。查看json org链接,了解可用于java的不同json解析器。此外,该链接还为不同的json解析器提供了漂亮而简单的教程。

就我个人而言,我在不需要进行大量json解析的应用程序中使用simple json,而在主要基于json的应用程序中使用gson,因此需要进行大量json解析。

司徒元明
2023-03-14

你也可以使用Maven中的Jackson。您可以这样使用它:

Map<String,Object> map = .... // create a map
ObjectMapper mapper = new ObjectMapper()
String jsonFromMap = mapper.writeValueAsString(map);

请注意,ObjectMapper有许多其他方法可以读取到/从对象读取。

我之所以推荐它,是因为它易于使用,支持注释,可用于生产,并被许多组织使用,而且可能最重要的是,它集成在许多现有框架中(Spring、Jersey、RESTeasy、Camel等)。

我不熟悉GSON,但有一个关于两个你可能想看一看的讨论。

伊飞光
2023-03-14

您可以使用Google GSON库。

只需将此添加到您的pom中

<dependency>
    <groupId>com.google.code.gson</groupId>
    <artifactId>gson</artifactId>
    <version>2.2.4</version>
</dependency>

并将该类添加到项目中

import java.lang.reflect.Type;
import java.util.*;
import com.google.gson.*;
import com.google.gson.reflect.TypeToken;

public class JsonHelper {
    private static final Gson gson = new GsonBuilder().disableHtmlEscaping().create();
    private static final Type TT_mapStringString = new TypeToken<Map<String,String>>(){}.getType();

    public static Map<String, String> jsonToMapStringString(String json) {
        Map<String, String> ret = new HashMap<String, String>();
        if (json == null || json.isEmpty())
            return ret;
         return gson.fromJson(json, TT_mapStringString);
    }
    public static String mapStringStringToJson(Map<String, String> map) {
        if (map == null)
            map = new HashMap<String, String>();
         return gson.toJson(map);
    }
}

我想你能想出如何使用它

 类似资料:
  • 请帮我解决这个问题。 提前谢谢你。

  • 问题内容: 我当前正在从文本文件中读取200万行,如上一个问题中所述 。Java读取200万行文本文件的最快方法 现在,我将这些信息存储到HashMap中,并希望通过TreeMap对其进行排序,因为我想使用ceilingkey。以下方法正确吗? 问题答案: HashMap hashMap = new HashMap (); TreeMap treeMap = new TreeMap (); tre

  • 我有一个hashmap,我正试图将其插入MongoDB(3.6版)。我知道insertMany()方法——它只获取文档列表。我无法创建列表,因为我的数据中有重复项,我想消除它们。这就是我创建hashmap的原因。有没有办法将hashmap插入Mongodb?我找到了一个链接https://www.mkyong.com/mongodb/java-mongodb-insert-a-document/这

  • 我有一个将一个项目映射到它的属性,例如,其中属性是从不同的数据源检索的。 例如,我们从数据库中获得属性,而从Solr中获得属性。 当我最初从DB检索时,我使用以避免阻塞主线程,如下所示: 然后通过对Solr的异步调用将其链接起来,这样我最终将有一个异步Hashmap将项映射到它们的属性,即(因此我循环遍历Hashmap的键,并用新属性更新值,使用访问旧属性)。 最后,我将数据映射到csv,这就是问

  • 问题内容: 在这里很难说出要问什么。这个问题是模棱两可,含糊,不完整,过于宽泛或夸张的,不能以目前的形式合理地回答。如需帮助澄清此问题以便可以重新打开, 请访问帮助中心。 7年前关闭。 如何在Java中将字节数组转换为File? 问题答案: 一个 文件对象 不包含文件的内容。它仅是硬盘(或其他存储介质,如SSD,USB驱动器,网络共享)上文件的指针。因此,我认为您想要将其写入硬盘。 您必须使用Ja

  • 问题内容: 嗨,我正在尝试将字符串写入文本文件,但是有一个小问题。我在该站点上其他问题的帮助下完成了代码,但是当我尝试向文本文件中添加字符串时,它将擦除该文本文件中的所有内容并写入输入。但我希望它转到下一行并编写。我无法解决。我将不胜感激任何帮助。谢谢.. 问题答案: (未试用)您是否尝试过JavaDoc中提到的方法?