📜  json 到 hashmap java 流 - Java (1)

📅  最后修改于: 2023-12-03 15:17:04.428000             🧑  作者: Mango

从 JSON 到 HashMap Java 流

在 Java 里,HashMap 是一个常用的 Java 集合,在我们的程序开发过程中,经常要用到将 JSON 数据转换成 HashMap 的需求。

本文将介绍如何使用 Java 流将 JSON 数据转换为 HashMap。

什么是 JSON?

JSON 全称为 JavaScript Object Notation,是一种轻量级的数据交换格式。它基于 JavaScript 语言的一个子集,即可表示数字、布尔值、字符串、null、数组和对象等数据类型。

以下是一份简单的 JSON 示例:

{
  "name": "Lucy",
  "age": 22,
  "isMarried": false,
  "hobbies": ["reading", "singing", "dancing"],
  "address": {
    "city": "Shanghai",
    "district": "Pudong",
    "street": "Abc Road",
    "postalCode": "200000"
  }
}
将 JSON 转换为 HashMap

将 JSON 转换为 HashMap 通常需要三个步骤:

  1. 导入 Jackson 库。
  2. 将 JSON 数据转换为 InputStream 流。
  3. 将 InputStream 流转换为 HashMap。
导入 Jackson 库

在将 JSON 数据转换为 HashMap 前,首先需要导入 Jackson 库。

可以在 pom.xml 文件中添加以下依赖:

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-core</artifactId>
  <version>2.11.4</version>
</dependency>

<dependency>
  <groupId>com.fasterxml.jackson.core</groupId>
  <artifactId>jackson-databind</artifactId>
  <version>2.11.4</version>
</dependency>
将 JSON 数据转换为 InputStream 流

接下来,需要将 JSON 数据转换为 InputStream 流,可以使用以下代码:

String json = "{\"name\":\"Lucy\",\"age\":22,\"isMarried\":false,\"hobbies\":[\"reading\",\"singing\",\"dancing\"],\"address\":{\"city\":\"Shanghai\",\"district\":\"Pudong\",\"street\":\"Abc Road\",\"postalCode\":\"200000\"}}";
InputStream inputStream = new ByteArrayInputStream(json.getBytes());
将 InputStream 流转换为 HashMap

最后,将 InputStream 流转换为 HashMap。可以使用以下代码:

try {
  ObjectMapper mapper = new ObjectMapper();
  HashMap<String, Object> map = mapper.readValue(inputStream, HashMap.class);
  System.out.println(map);
} catch (IOException e) {
  e.printStackTrace();
}

其中,ObjectMapper 是 Jackson 库中一个核心类,用于将 JSON 数据转换为 Java 对象。readValue() 方法可以读取 InputStream 流,并将其转换为 HashMap。

输出结果为:

{address={postalCode=200000, street=Abc Road, district=Pudong, city=Shanghai}, hobbies=[reading, singing, dancing], isMarried=false, name=Lucy, age=22}
总结

本文介绍了如何使用 Java 流将 JSON 数据转换为 HashMap。首先需要导入 Jackson 库,然后将 JSON 数据转换为 InputStream 流,最后使用 ObjectMapper 类将 InputStream 流转换为 HashMap。

希望本文对程序员朋友们有所帮助!