zoukankan      html  css  js  c++  java
  • 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框架内容。

  • 相关阅读:
    #ACsaber ——简单排序、字符串加空格、数组中的行 ~20.10.22
    #堆排序 20.09.27
    #并查集 20.09.25
    #卡特兰数 #抽屉原理 #Nim游戏 ——杂记
    #扩展欧几里得算法 ——线性同余方程 ~20.9.4
    #周测 7 —— 数的划分 、逆序对 、排座椅 、棋盘
    117. 占卜DIY
    116. 飞行员兄弟
    115.给树染色
    112.雷达设备
  • 原文地址:https://www.cnblogs.com/nice0e3/p/13552644.html
Copyright © 2011-2022 走看看