JSON的处理

1、JSON

  • JSON(JavaScript Object Notation):是一种轻量级的数据交换格式。

  • 它是基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。

  • 简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。易于人阅读和编写,同时也易于计算机解析和生成,并有效的 提升网络传输效率。

  • 创建格式

  • 常用方法

2、JSON转换工具的介绍

  • 我们除了可以在 JavaScript 中来使用 JSON 以外,在 JAVA 中同样也可以使用 JSON。

  • JSON 的转换工具是通过 JAVA 封装好的一些 JAR 工具包。

  • 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。

  • Jackson:开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。

      1. 导入 jar 包。
      2. 创建核心对象。
      3. 调用方法完成转换。
  • 常用类

  • ObjectMapper常用方法

3、JSON转换练习

  1. 对象转 JSON, JSON 转对象。

    java 复制代码
    /*
        JSON转换工具的使用
     */
    public class ObjectMapperTest {    
    	private ObjectMapper mapper = new ObjectMapper();
        /*
            1.User对象转json, json转User对象
              json字符串 = {"name":"张三","age":23}
              user对象 = User{name='张三', age=23}
         */
        @Test
        public void test01() throws Exception{
            //User对象转json
            User user = new User("张三",23);
            String json = mapper.writeValueAsString(user);
            System.out.println("json字符串:" + json);
    
            //json转User对象
            User user2 = mapper.readValue(json, User.class);
            System.out.println("java对象:" + user2);
        }
    }
  2. Map转 JSON, JSON 转 Map。

    java 复制代码
    /*
      2.map<String,String>转json, json转map<String,String>
      json字符串 = {"姓名":"张三","性别":"男"}
      map对象 = {姓名=张三, 性别=男}
    */
    @Test
    public void test02() throws Exception{
        //map<String,String>转json
        HashMap<String,String> map = new HashMap<>();
        map.put("姓名","张三");
        map.put("性别","男");
        String json = mapper.writeValueAsString(map);
        System.out.println("json字符串:" + json);
    
        //json转map<String,String>
        HashMap<String,String> map2 = mapper.readValue(json, HashMap.class);
        System.out.println("java对象:" + map2);
    }
  3. Map转 JSON, JSON 转 Map。

    java 复制代码
    /*
      3.map<String,User>转json, json转map<String,User>
        json字符串 = {"黑马一班":{"name":"张三","age":23},"黑马二班":{"name":"李四","age":24}}
        map对象 = {黑马一班=User{name='张三', age=23}, 黑马二班=User{name='李四', age=24}}
     */
    @Test
    public void test03() throws Exception{
        //map<String,User>转json
        HashMap<String,User> map = new HashMap<>();
        map.put("黑马一班",new User("张三",23));
        map.put("黑马二班",new User("李四",24));
        String json = mapper.writeValueAsString(map);
        System.out.println("json字符串:" + json);
    
        //json转map<String,User>
        HashMap<String,User> map2 = mapper.readValue(json,new TypeReference<HashMap<String,User>>(){});
        System.out.println("java对象:" + map2);
    }
  4. List转 JSON, JSON 转 List。

    java 复制代码
    /*
      4.List<String>转json, json转 List<String>
        json字符串 = ["张三","李四"]
        list对象 = [张三, 李四]
    */
    @Test
    public void test04() throws Exception{
        //List<String>转json
        ArrayList<String> list = new ArrayList<>();
        list.add("张三");
        list.add("李四");
        String json = mapper.writeValueAsString(list);
        System.out.println("json字符串:" + json);
    
        //json转 List<String>
        ArrayList<String> list2 = mapper.readValue(json,ArrayList.class);
        System.out.println("java对象:" + list2);
    }
  5. List转 JSON, JSON 转 List。

    java 复制代码
    /*
      5.List<User>转json, json转List<User>
        json字符串 = [{"name":"张三","age":23},{"name":"李四","age":24}]
        list对象 = [User{name='张三', age=23}, User{name='李四', age=24}]
         */
    @Test
    public void test05() throws Exception{
        //List<User>转json
        ArrayList<User> list = new ArrayList<>();
        list.add(new User("张三",23));
        list.add(new User("李四",24));
        String json = mapper.writeValueAsString(list);
        System.out.println("json字符串:" + json);
    
        //json转List<User>
        ArrayList<User> list2 = mapper.readValue(json,new TypeReference<ArrayList<User>>(){});
        System.out.println("java对象:" + list2);
    }

4、小结

  • **Jackson:**开源免费的 JSON 转换工具,SpringMVC 转换默认使用 Jackson。

  • 可以将 JAVA 对象或集合转换成 JSON 格式的字符串,也可以将 JSON 格式的字符串转成 JAVA 对象。

  • 常用类

相关推荐
小疯仔5 小时前
轨迹在地图上“漂“了 500 米?一文吃透 WGS-84→GCJ-02 坐标转换引擎(GPX→JSON 实战源码剖析)
小程序·json·notepad++
Flynt8 小时前
"只输出 JSON"根本不够:LLM 结构化输出的坑,我实测了 60 次调用
llm·json
她说..16 小时前
MySQL 与 Java 的 JSON 数据处理
java·mysql·json·springboot
牛油果子哥q2 天前
C++对接LLM完整工程:异步HTTP请求、JSON解析、超时容错、重连兜底
c++·http·json
小刘在重生~2 天前
Django|Ajax 入门、JSON 返回、ECharts 图表、文件上传完整笔记
ajax·django·json
谢斯3 天前
[unity]如何在unity中添加newtonsoft-json
unity·json·游戏引擎
2601_962066934 天前
短视频批量制作怎么做?2026年用 huasheng-cli 的 --json 与退出码,一张选题表批量出片
json·音视频
oliver_sys_log5 天前
老项目 json-lib 2.4 JSONTokener 精度丢失问题排查
json
IT_Octopus6 天前
JSON 日志里的 `{“$ref“:“$.xxx“}`:从 fastjson 兼容包到原生 fastjson2 的迁移实录
开发语言·python·json
数据狐(Datafox)6 天前
mercadolibre.item_get 工程实战:美客多商品详情API技术解析与落地应用
java·人工智能·mysql·json