当前位置: 首页 > article >正文

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

在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字符串

    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字符串

    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.kler.cn/a/326012.html

相关文章:

  • SpringCloud篇(服务保护 - Sentinel)
  • Nginx server_name配置错误导致路由upstream超时问题
  • 使用 Go 实现将任何网页转化为 PDF
  • 网络安全SQL初步注入2
  • GoogleCloud服务器的SSH连接配置
  • 终端快捷键学习笔记
  • 数据集-目标检测系列-鲨鱼检测数据集 shark >> DataBall
  • docker-compose 命令指定yml文件的命令
  • HTTPS证书配置
  • 【html网页制作】旅游风景主题网页制作含css动画及js特效(8页面附效果源码)
  • Hadoop搭建及Springboot集成
  • 【PyTorch】循环神经网络
  • Ubuntu磁盘不足扩容
  • 【Linux篇】常用命令及操作技巧(进阶篇 - 上)
  • 数据结构之栈和队列——LeetCode:150. 逆波兰表达式求值,224. 基本计算器,232. 用栈实现队列
  • CSS 的user-select属性,控制用户是否能够选中文本内容
  • Java知识要点及面试题
  • 确保从IP池提取的IP是可用的对于数据抓取或其他网络活动至关重要。以下是一些确保IP可用性的有效方法:
  • 创新车展模式 焕新直播生态——第十一届麓谷汽车文化节圆满收官
  • 2024前端技术发展概况
  • Linux RCE 利用打印机服务 CVE-2024-47177
  • 【Redis】初识 Redis
  • 城市空间设计对居民生活质量的影响:构建宜居城市的蓝图
  • 基于SpringBoot实现QQ邮箱发送短信功能 | 免费短信服务
  • Nacos 安全使用最佳实践 - 访问控制实践
  • Redis 基础数据改造