JAVA自动化(一)--JSON

前言

本篇为JAVA自动化的第一篇章,主要为JSON得序列化与反序列化
主要讲述后续自动化中能够使用得部分,如果想了解更多可以查看官方文档
学习条件:JAVA基础部分

JSON介绍

JSON(JavaScript Object Notation, JavaScript 对象表示法) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

JSON语法规则

1.数据在键值对当中
2.数据由逗号分隔
3.大括号{}保存对象

{
    "name": "Kai",
    "age": "25"
}

4.中括号保存数组

{
    "hobby": ["吃饭", "睡觉", "打豆豆"]
}
JSON值类型:
  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true 或 false)
  • 数组(在中括号中)
  • 对象(在大括号中)
  • null
{
    "name": "Kai",
    "age": 25,
    "height": 180,
    "isSingle": false,
    "address": {
        "provinces": "上海市",
        "city": "徐汇区"
    },
    "hobby": ["吃饭", "睡觉", "打豆豆"],
    "weight": null
}

Jackson处理JSON

Java生态圈中有很多处理Json格式化的类库
常见的解析器:Jsonlib,Gson,fastjson,Jackson,我们一般使用Jackson来处理Json
Jackson是一个功能强大得Java序列化库,除了json之外,还支持YAML,CSV,XML

Maven相关配置:https://mvnrepository.com 在此网站找到相关版本,或者直接复制下方

<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>2.13.3</version>
</dependency>

相关使用

ObjectMapper是序列化/反序列化操作的核心,Jackson的所有操作都是在ObjectMapper中实现

ObjectMapper objectMapper = new ObjectMapper();
序列化:JAVA对象 --> JSON

不管你是什么结构的对象,想转json,直接 objectMapper.writeValueAsString() 搞定。

对象转json
//先准备一个学生类
public class Student {
    private String name;
    private int age;
 
 	public Student() {
    
    }

    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "Student{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }
}
//将学生类转为json
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDemo1 {

    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        Student student = new Student("Kai", 25);
        String json = objectMapper.writeValueAsString(student);
        System.out.println(json);
    }
}
map转json
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;

public class JsonDemo2 {
    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();

        HashMap<String, Object> map = new HashMap<>();
        map.put("test",1);
        map.put("age",18);

        String json = objectMapper.writeValueAsString(map);
        System.out.println(json);
    }
}

反序列化:JSON–> JAVA对象
json转对象
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

public class JsonDemo3 {
    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        String json = "{\"name\":\"Kai\",\"age\":\"25\"}";
        //JSON字符串转为对象
        Student student = objectMapper.readValue(json, Student.class);
        System.out.println(student);
        
    }
}

json转map
package json;

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.util.HashMap;

public class JsonDemo4 {
    public static void main(String[] args) throws JsonProcessingException {
        ObjectMapper objectMapper = new ObjectMapper();
        String json = "{\"name\":\"Kai\",\"age\":\"25\"}";
        HashMap hashMap = objectMapper.readValue(json, HashMap.class);
        System.out.println(hashMap);
    }
}

结尾

本篇简单介绍了json和Jackson的简单用法,主要为后续JAVA自动化中做准备,如需关于Jackson的详细内容可查看官网

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值