• Java学习之jackson篇


    Java学习之jackson篇

    0x00 前言

    本篇内容比较简单,简单记录。

    0x01 Json 概述

    概述:JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

    这里复制了一段百度百科的解释,其实内容都可以用一句话来概括。

    json主要用于数据交互,主要有键值对来表示。

    而在Java里面需要解析json需要用到json的解析器。

    0x02 jackson 解析器

    在Java里面常见的json解析器有

    Jsonlib,Gson,fastjson,jackson
    

    那么这里拿jackson来进行演示。

    常用方法

    1. readValue(json字符串数据,Class)      json转换为java对象
    
    2.writeValue(参数1,obj):
     参数1:
     
    File:将obj对象转换为JSON字符串,并保存到指定的文件中
    
    Writer:将obj对象转换为JSON字符串,并将json数据填充到字符输出流中
    
    OutputStream:将obj对象转换为JSON字符串,并将json数据填充到字节输出流中
    
    3.writeValueAsString(obj):将对象转为json字符串
    
    
    

    注解:

    1. @JsonIgnore:排除属性。
    
    2. @JsonFormat:属性值得格式化
    

    对象转Json

    这里还需要定义一个实体类,这里就不写了。

    package com.test.domain;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    public class jsonDemo {
        public static void main(String[] args) {
            Person person = new Person();
            person.setName("xiaoming");
            person.setSex("name");
            person.setAge(18);
            ObjectMapper objectMapper = new ObjectMapper();
            try {
                String s = objectMapper.writeValueAsString(person);
                System.out.println(s);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
    
    
        }
    }
    
    

    显示数据:

    {"name":"xiaoming","age":18,"sex":"name"}

    list集合转换json

    package com.test.domain;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    import java.util.ArrayList;
    import java.util.List;
    
    public class jsonDemo {
        public static void main(String[] args) {
            Person p1= new Person();
            p1.setName("xiaoming");
            p1.setSex("name");
            p1.setAge(18);
            Person p2= new Person();
            p2.setName("xiaoming");
            p2.setSex("name");
            p2.setAge(18);
            ObjectMapper objectMapper = new ObjectMapper();
            List<Person> list = new ArrayList<>();
            list.add(p1);
            list.add(p2);
    
            try {
                String s = objectMapper.writeValueAsString(list);
                System.out.println(s);
            } catch (JsonProcessingException e) {
                e.printStackTrace();
            }
        }
    }
    
    

    json转Java对象

    package com.test.domain;
    
    import com.fasterxml.jackson.core.JsonProcessingException;
    import com.fasterxml.jackson.databind.ObjectMapper;
    
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.List;
    
    public class jsonDemo {
        public static void main(String[] args) throws IOException {
           String json = "{"sex":"男","age":"18","name":"xiaoming"}";
            ObjectMapper objectMapper = new ObjectMapper();
            Person person = objectMapper.readValue(json, Person.class);
            System.out.println(person.toString());
        }
    }
    
    

    0x03 结尾

    后面准备开始更新Java框架内容。

  • 相关阅读:
    【Matlab】去除图片周围空白区域(plot subplot)
    使用nbdev进行jupyter项目的开发
    如何绘制符合打印标准的图形
    如何使用Python完成视频的快速剪辑
    如何查看和修改论文图片的打印尺寸
    使用TMUX替代screen工具
    Emacs设置包管理器以及镜像
    Emacs的配置文件
    Emacs Windows的设置
    数据科学新的工具Julia
  • 原文地址:https://www.cnblogs.com/nice0e3/p/13552644.html
Copyright © 2020-2023  润新知