Java中Map与JSON数据之间的互相转化

Java中Map与JSON数据之间的转化是Java开发中常见的操作,特别是在进行前后端数据交互的过程中。下面是Java中Map与JSON数据之间互相转化的完整攻略。

1. Map转JSON

将Map转化为JSON格式的数据可以使用Gson、Jackson等第三方库进行实现。

1.1 Gson实现

Gson是Google提供的一个Java中的JSON处理库,可以轻松完成JSON格式和Java对象之间的转换。

Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 18);
map.put("sex", "男");

Gson gson = new Gson();
String jsonStr = gson.toJson(map);
System.out.println(jsonStr);

输出结果为:

{"sex":"男","name":"张三","age":18}

1.2 Jackson实现

Jackson是另一个常用的JSON处理库,同样也可以实现Map转JSON的操作。

Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 18);
map.put("sex", "男");

ObjectMapper mapper = new ObjectMapper();
String jsonStr = mapper.writeValueAsString(map);
System.out.println(jsonStr);

输出结果为:

{"name":"张三","age":18,"sex":"男"}

2. JSON转Map

2.1 Gson实现

同样使用Gson可以将JSON格式的数据转化成Map。

String jsonStr = "{\"name\":\"张三\",\"age\":18,\"sex\":\"男\"}";

Gson gson = new Gson();
Type type = new TypeToken<Map<String, Object>>() {}.getType();
Map<String, Object> map = gson.fromJson(jsonStr, type);

System.out.println(map.get("name"));
System.out.println(map.get("age"));
System.out.println(map.get("sex"));

输出结果为:

张三
18
男

2.2 Jackson实现

Jackson同样支持将JSON字符串转化成Map。

String jsonStr = "{\"name\":\"张三\",\"age\":18,\"sex\":\"男\"}";

ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(jsonStr, new TypeReference<Map<String,Object>>(){});

System.out.println(map.get("name"));
System.out.println(map.get("age"));
System.out.println(map.get("sex"));

输出结果为:

张三
18
男

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Java中Map与JSON数据之间的互相转化 - Python技术站

(0)
上一篇 2023年5月26日
下一篇 2023年5月26日

相关文章

  • NodeJS实现不可逆加密与密码密文保存的方法

    下面是“NodeJS实现不可逆加密与密码密文保存的方法”的完整攻略。 1. 什么是不可逆加密 不可逆加密(也称哈希函数)是一种将任意长度的输入(一般是明文)通过哈希算法变换成固定长度的输出(一般是密文)的方法,它的特点是不可逆性、唯一性、固定性、散列值分布性等,常用于实现密码的密文保存。 2. NodeJS中的常见哈希函数 在NodeJS中,常见的哈希函数包…

    Java 2023年5月23日
    00
  • Spring请求参数校验功能实例演示

    我来为您讲解“Spring请求参数校验功能实例演示”的完整攻略,首先我们需要了解以下几点: Spring请求参数校验依赖于Hibernate Validator(JSR 380)。 在Controller层使用@Valid注解对参数进行校验。 在参数对象中使用Hibernate Validator的注解对属性进行校验。 接下来我们将透过两个示例来进行具体演示…

    Java 2023年5月20日
    00
  • java使用http实现文件下载学习示例

    Java使用HTTP实现文件下载学习示例 什么是HTTP? HTTP是一种应用层协议,用于在网络中传输超文本数据。HTTP是Web的基础,它使Web能够进行交互式连接。 Java如何使用HTTP实现文件下载? Java提供了多种方式可以使用HTTP进行文件下载,这里介绍两种常用的方式。 使用HttpURLConnection类 HttpURLConnecti…

    Java 2023年5月19日
    00
  • spring scheduled单线程和多线程使用过程中的大坑

    介绍 在使用Spring框架的Scheduled定时任务功能时,我们可以通过配置ThreadPoolTaskExecutor来实现多线程执行定时任务。但是在使用过程中,可能会遇到一些坑,比如在多线程执行过程中,由于任务执行的时间过长,而ThreadPoolTaskExecutor线程池中可用线程数量过少,可能造成任务阻塞,从而导致已经执行的任务无法被及时释放…

    Java 2023年5月19日
    00
  • 解决Springboot启动报错:类文件具有错误的版本61.0,应为 52.0

    针对SpringBoot启动报错“类文件具有错误的版本61.0,应为52.0”,按照以下步骤进行解决: 1.问题原因 这个问题通常是因为编译器和运行环境版本不一致。使用较高版本的编译器编译的类文件,在低版本的运行环境中无法运行,导致启动失败。 2.解决过程 2.1 确认编译器和运行环境版本 首先需要确认代码使用的编译器版本以及部署环境的JDK版本是否一致。可…

    Java 2023年5月19日
    00
  • Spring Data Jpa+SpringMVC+Jquery.pagination.js实现分页示例

    下面我来详细讲解一下“Spring Data Jpa+SpringMVC+Jquery.pagination.js实现分页示例”的完整攻略。 1. 环境准备 首先,我们需要准备好以下环境: JDK 1.8 Spring Boot 2.3.4.RELEASE Spring Data JPA 2.3.4.RELEASE MySQL 8.0.21 Maven 3.…

    Java 2023年5月20日
    00
  • 详解java线程的开始、暂停、继续

    当涉及到多任务处理时,线程是Java中非常重要的机制。但是,在开始了解Java线程如何开始、暂停、继续之前,我们需要先了解线程的基础知识。 什么是Java线程? Java线程是程序执行中的最小单元,与进程不同,线程是在一个进程中执行的代码片段,每个进程可以有多个线程,而每个线程都可以并行执行不同的任务。Java中的线程可以有效地帮助程序在执行中避免阻塞,从而…

    Java 2023年5月18日
    00
  • Spring配置多数据源切换

    下面我将详细讲解Spring配置多数据源切换的完整攻略。处理多数据源切换的核心是通过动态切换数据源来实现。实现这一点的最简单、最常用的方法是使用AOP切面,这也是本文的重点。 1. 添加依赖 以下是maven引用多数据源相关依赖的代码: <dependency> <groupId>org.springframework.boot&lt…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部