扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
本篇为JAVA自动化的第一篇章,主要为JSON得序列化与反序列化
主要讲述后续自动化中能够使用得部分,如果想了解更多可以查看官方文档
学习条件:JAVA基础部分
JSON(JavaScript Object Notation, JavaScript 对象表示法) 是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。
JSON语法规则1.数据在键值对当中
2.数据由逗号分隔
3.大括号{}保存对象
{"name": "Kai",
"age": "25"
}
4.中括号保存数组
{"hobby": ["吃饭", "睡觉", "打豆豆"]
}
JSON值类型:{"name": "Kai",
"age": 25,
"height": 180,
"isSingle": false,
"address": {"provinces": "上海市",
"city": "徐汇区"
},
"hobby": ["吃饭", "睡觉", "打豆豆"],
"weight": null
}
Jackson处理JSONJava生态圈中有很多处理Json格式化的类库
常见的解析器:Jsonlib,Gson,fastjson,Jackson,我们一般使用Jackson来处理Json
Jackson是一个功能强大得Java序列化库,除了json之外,还支持YAML,CSV,XML
Maven相关配置:https://mvnrepository.com 在此网站找到相关版本,或者直接复制下方
com.fasterxml.jackson.core jackson-databind 2.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转jsonpackage 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转mappackage 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元起,快前往官网查看详情吧
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流