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

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

使用Jackson

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

    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文件中添加以下依赖:

    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类型。

相关推荐
biyezuopinvip几秒前
基于JavaSSM+MySQL的机房预约管理系统设计与实现
java·mysql·毕业设计·论文·ssm·jsp·机房预约管理系统设计与实现
开开心心_Every几秒前
免费视频画质增强:智能超分辨率无损放大
java·服务器·前端·python·学习·edge·powerpoint
lbb 小魔仙1 分钟前
【Java】Java 实战项目:从零开发一个在线教育平台,附完整部署教程
java·开发语言
正在走向自律3 分钟前
时序数据管理:金仓数据库破局之道
java·后端·struts·时序数据库·金仓kes v9
学编程的小程5 分钟前
告别链接混乱❗️Sun-Panel+cpolar 让 NAS 服务远程一键直达
java·开发语言
青槿吖6 分钟前
【Java集合通关秘籍】从List到Set:解锁无序不重复的集合魔法✨
java·开发语言·算法
do better myself7 分钟前
php导入关键词的脚本 300条分批导入
java·服务器·前端
青云交9 分钟前
Java 大视界 -- Java+Spark 构建离线数据仓库:分层设计与 ETL 开发实战(445)
java·数据仓库·spark·分层设计·java+spark·离线数据仓库·etl 开发
小北方城市网11 分钟前
SpringBoot 集成消息队列实战(RabbitMQ/Kafka):异步通信与解耦,落地高可靠消息传递
java·spring boot·后端·python·kafka·rabbitmq·java-rabbitmq
曹天骄13 分钟前
我是如何用 Cloudflare Worker 实现 HTML 灰度发布与两级缓存的
java·缓存·html