一.Json
json最早是JavaScript对象表示形式,现在主要用于互联网传输数据载体
* java
User user =new User();
user.setUsername("ack");
user.setAge(18);
* javaScript
let user = {"username":"ack","age":18};
let array = [{},{},{}]
name:都是字符串
value:支持各种类型
json比xml更小,更快,更易解析
JSON数据与java对象转换
常见的解析器:
工具名称 | 介绍 |
---|---|
Jsonlib | Java 类库,需要导入的jar包较多 |
Gson | google提供的一个简单的json转换工具 |
Fastjson | alibaba技术团队提供的一个高性能的json转换工具 |
Jackson | 开源免费的json转换工具,springmvc转换默认使用jackson |
1.使用jackson,需要导入jar包:如下:
提供了一个核心转换器对象
ObjectMapper om = new ObjectMapper();
2.java对象转为json字符串
String writeValueAsString(Object object);
// 将user对象转为json字符串
@Test
public void UserToJson() throws Exception {
User user = new User("1", "lucy", "女", 15, "德斯", "123", "13@qq.com");
// 创建jackson转换器对象
ObjectMapper om = new ObjectMapper();
// 将任意对象转为json字符串
String json = om.writeValueAsString(user);
System.out.println(json); // 在java中name必须使用双引号包裹起来
}
// 将map集合转为json字符串
@Test
public void MapToJson() throws Exception {
Map<String, Object> map = new HashMap<>();
map.put("name", "张三");
map.put("age", 18);
// 创建jackson转换器对象
ObjectMapper om = new ObjectMapper();
// toJson
String json = om.writeValueAsString(map);
System.out.println(json); // {"name":"张三","age":18}
}
// 将list集合转为json数组字符串
@Test
public void ListToJson() throws Exception {
List<User> list = new ArrayList<>();
list.add(new User("1", "lucy", "女", 15, "德斯", "123", "123@qq.com"));
list.add(new User("2", "jack", "男", 15, "德斯", "123", "123@qq.com"));
// 创建jackson转换器对象
ObjectMapper om = new ObjectMapper();
// toJson
String json = om.writeValueAsString(list);
System.out.println(json); // [{},{}]
}
3.将json(字符串)转为java对象
T readValue(String json,Class<T> classType);
// 将json字符串转为user对象
@Test
public void JsonToUser() throws Exception {
String json = "{\"id\":\"1\",\"name\":\"lucy\",\"sex\":\"女