Jackson与Json的介绍与使用

目录

    • 1 JSON
    • 2 JSON转换工具的介绍
    • 3 JSON转换练习
    • 4 小结
    • 5 map对象套对象
    • 6 JSON时间类型按标准返回


1 JSON

推荐一个小工具:CSDN插件可以将后端返回的json数据进行格式化,而且不容易失效毕竟是csdn维护。
Jackson与Json的介绍与使用_第1张图片

在这里插入图片描述

JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法,类似 XML。
JSON 比 XML 更小、更快,更易解析。
JSON 指的是 JavaScript 对象表示法(JavaScript Object Notation)
JSON 是轻量级的文本数据交换格式 JSON 独立于语言:
JSON 使用 Javascript语法来描述数据对象,但是 JSON 仍然独立于语言和平台。JSON 解析器和 JSON 库支持许多不同的编程语言。 目前非常多的动态(PHP,JSP,.NET)编程语言都支持JSON。

JSON 具有自我描述性,更易理解

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

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

  • 创建格式
    Jackson与Json的介绍与使用_第3张图片

  • 常用方法
    Jackson与Json的介绍与使用_第4张图片

2 JSON转换工具的介绍

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

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

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

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

      1. 导入 jar 包。
      2. 创建核心对象。
      3. 调用方法完成转换。
  • 常用类
    Jackson与Json的介绍与使用_第5张图片

  • ObjectMapper常用方法
    Jackson与Json的介绍与使用_第6张图片

3 JSON转换练习

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

    /*
        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。

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

/*
  3.map转json, json转map
    json字符串 = {"一班":{"name":"张三","age":23},"二班":{"name":"李四","age":24}}
    map对象 = {一班=User{name='张三', age=23}, 二班=User{name='李四', age=24}}
 */
@Test
public void test03() throws Exception{
    //map转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
    HashMap<String,User> map2 = mapper.readValue(json,new TypeReference<HashMap<String,User>>(){});
    System.out.println("java对象:" + map2);
}
  1. List转 JSON, JSON 转 List。

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

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

redis中获得缓存json和解析json

使用github的PageHrlper小工具判空 import com.github.pagehelper.util.StringUtil;
if(StringUtil.isEmpty(provinces))是空为true

public class Springboot01ApplicationTests {
    @Autowired
    private AccountService accountService;
    @Autowired
    private RedisTemplate<String,String> redisTemplate;
    @Test
    public void contextLoads() throws Exception {


        String list1 = redisTemplate.opsForValue().get("json");
        if (StringUtil.isEmpty(list1)){
            System.out.println("无缓存");
        }else{
            System.out.println("从缓存拿出");
            ArrayList<Account> arrayList = new ObjectMapper().readValue(list1, ArrayList.class);
            System.out.println(arrayList);
        }
        List<Account> list = accountService.findAll();
       String json = new ObjectMapper().writeValueAsString(list);
        System.out.println(json);
        redisTemplate.opsForValue().set("json", json);
    }
}

4 小结

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

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

  • 常用类
    Jackson与Json的介绍与使用_第7张图片

5 map对象套对象

Jackson与Json的介绍与使用_第8张图片
Jackson与Json的介绍与使用_第9张图片

6 JSON时间类型按标准返回

Jackson与Json的介绍与使用_第10张图片

你可能感兴趣的:(front,json,java,javascript)