JAVA自动化(一)--JSON-创新互联

前言

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

创新互联-专业网站定制、快速模板网站建设、高性价比红安网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式红安网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖红安地区。费用合理售后完善,10余年实体公司更值得信赖。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 在此网站找到相关版本,或者直接复制下方

com.fasterxml.jackson.corejackson-databind2.13.3
相关使用

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();

        HashMapmap = 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的详细内容可查看官网

你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧


本文名称:JAVA自动化(一)--JSON-创新互联
文章URL:http://ybzwz.com/article/pseso.html