JSON字符串转换成Java集合对象

news/2024/12/22 0:42:29/

在Java中,将JSON字符串转换成Java集合对象通常涉及到使用JSON处理库,如Jackson或Google的Gson。以下是使用这两个库的示例:

使用Jackson

  1. 添加Jackson依赖:如果你使用Maven,可以在pom.xml文件中添加以下依赖:

    <dependency><groupId>com.fasterxml.jackson.core</groupId><artifactId>jackson-databind</artifactId><version>2.13.0</version>
    </dependency>
  2. 转换JSON字符串

    java">import com.fasterxml.jackson.databind.ObjectMapper;
    import com.fasterxml.jackson.core.type.TypeReference;
    import java.util.List;
    import java.util.Map;public class JsonToJava {public static void main(String[] args) {String jsonStr = "[{\"name\":\"John\"}, {\"name\":\"Jane\"}]";ObjectMapper mapper = new ObjectMapper();try {// 将JSON字符串转换为List<Map<String, String>>List<Map<String, String>> list = mapper.readValue(jsonStr, new TypeReference<List<Map<String, String>>>() {});System.out.println(list);// 如果JSON是一个对象String jsonObj = "{\"name\":\"John\", \"age\":30}";Map<String, Object> obj = mapper.readValue(jsonObj, new TypeReference<Map<String, Object>>() {});System.out.println(obj);} catch (Exception e) {e.printStackTrace();}}
    }

使用Gson

  1. 添加Gson依赖:如果你使用Maven,可以在pom.xml文件中添加以下依赖:

    <dependency><groupId>com.google.code.gson</groupId><artifactId>gson</artifactId><version>2.8.8</version>
    </dependency>
  2. 转换JSON字符串

    java">import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    import java.util.List;
    import java.util.Map;public class JsonToJava {public static void main(String[] args) {String jsonStr = "[{\"name\":\"John\"}, {\"name\":\"Jane\"}]";Gson gson = new Gson();// 将JSON字符串转换为List<Map<String, String>>List<Map<String, String>> list = gson.fromJson(jsonStr, new TypeToken<List<Map<String, String>>>(){}.getType());System.out.println(list);// 如果JSON是一个对象String jsonObj = "{\"name\":\"John\", \"age\":30}";Map<String, Object> obj = gson.fromJson(jsonObj, new TypeToken<Map<String, Object>>(){}.getType());System.out.println(obj);}
    }

在这两个示例中,我们使用了泛型和类型令牌(TypeReference或TypeToken)来指定我们要转换的目标类型。这是因为Java的泛型在运行时会被擦除,所以我们需要额外的信息来告诉库我们期望的目标类型。

请注意,你需要根据你的JSON结构来调整目标类型。例如,如果你的JSON字符串表示一个对象数组,你应该使用 List<MyObject.class>,其中 MyObject 是一个对应JSON对象结构的Java类。如果你的JSON字符串表示一个简单的值(如字符串、数字等),你可以直接将其转换为相应的Java类型。


http://www.ppmy.cn/news/1534055.html

相关文章

数据结构双向链表和循环链表

目录 一、循环链表二、双向链表三、循环双向链表 一、循环链表 循环链表就是首尾相接的的链表&#xff0c;就是尾节点的指针域指向头节点使整个链表形成一个循环&#xff0c;这就弥补了以前单链表无法在后面某个节点找到前面的节点&#xff0c;可以从任意一个节点找到目标节点…

【API安全】crAPI靶场全解

目录 BOLA Vulnerabilities Challenge 1 - Access details of another user’s vehicle Challenge 2 - Access mechanic reports of other users Broken User Authentication Challenge 3 - Reset the password of a different user Excessive Data Exposure Challenge …

Ps:将画板导出到 PDF

菜单&#xff1a;文件/导出/将画板导出到 PDF Export/Artboards to PDF 将画板导出到 PDF Artboards to PDF命令用于将 Photoshop 的画板导出为 PDF 文件&#xff0c;提供了多种导出选项&#xff0c;可以控制文件的压缩、是否嵌入颜色配置文件、文件命名以及页面顺序等。它适用…

Python中的机器学习:从入门到实战

机器学习是人工智能领域的一个重要分支&#xff0c;它通过构建模型来使计算机从数据中学习并做出预测或决策。Python凭借其丰富的库和强大的生态系统&#xff0c;成为了机器学习的首选语言。本文将从基础到实战&#xff0c;详细介绍如何使用Python进行机器学习&#xff0c;涵盖…

滚雪球学MySQL[3.2讲]:MySQL聚合函数与分组详解:COUNT、SUM、AVG、MAX、MIN及GROUP BY与HAVING

全文目录&#xff1a; 前言3.2 聚合函数与分组1. COUNT、SUM、AVG、MAX、MIN等常用聚合函数1.1 COUNT函数基本语法示例1&#xff1a;统计学生表中的总记录数示例2&#xff1a;统计特定条件下的记录数 1.2 SUM函数基本语法示例1&#xff1a;计算总成绩 1.3 AVG函数基本语法示例1…

[每周一更]-(第117期):硬盘分区表类型:MBR和GPT区别

文章目录 1. **支持的磁盘容量**2. **分区数量**3. **引导方式**4. **冗余和数据恢复**5. **兼容性**6. **安全性**7. **操作系统支持**8. 对比 国庆假期前补一篇 在一次扫描机械硬盘故障的问题&#xff0c;发现我本机SSD和机械硬盘的分类型不一样&#xff0c;分别是GPT和MBR&a…

从0学习React(1)

上次在写关于index.tsx的解析的文章的时候&#xff0c;写着写着我突然发现文章太长了&#xff0c;以至于我把代码的很多细节都给忽略掉&#xff0c;只把index.tsx文件的大致结构给写了出来。所以接下来的几篇文章&#xff0c;我将会把index.tsx分成很多个部分&#xff0c;我争取…

知识图谱入门——6:Cypher 查询语言高级组合用法(查询链式操作、复杂路径匹配、条件逻辑、动态模式创建,以及通过事务控制和性能优化处理大规模数据。

在熟悉 Cypher 的基本操作后&#xff0c;复杂查询场景中的高级用法可以帮助你充分利用 Neo4j 图数据库的强大功能。这些组合用法涉及查询链式操作、复杂路径匹配、条件逻辑、动态模式创建&#xff0c;以及通过事务控制和性能优化处理大规模数据。 文章目录 1. 使用 WITH 管道式…