package com.neo.jackson;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.*;
/**
* 简单使用对象转换为JSON
* 功能测试
*/
public class JacksonTest {
public static void main(String[] args) {
System.out.println("Map 转换为JSON");
HashMap<Integer,String> hashMaps = new HashMap<>();
hashMaps.put(1,"neo");
hashMaps.put(2,"zhao");
ObjectMapper mapper = new ObjectMapper();
try {
String json = mapper.writeValueAsString(hashMaps);
System.out.println("转换为JSON : " + json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println("自定义对象转换为JSON");
List<User> users = new ArrayList<>();
for(int i = 0; i < 5 ; i++ ){
User user = new User();
user.no = i;
user.name = "neo";
users.add(user);
}
ObjectMapper mapper1 = new ObjectMapper();
try {
String json = mapper1.writeValueAsString(users);
System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
System.out.println("自定义对象较复杂转换为JSON");
List<Company> companies = new ArrayList<>();
for(int i = 0; i < 3; i++){
Company company = new Company();
company.setNo(i);
Set<String> set = new HashSet();
set.add("neo");
set.add("zhao");
company.setSet(set);
List<String> list = new ArrayList<>();
list.add("musk");
list.add("kaiWen");
list.add("Helen");
company.setName(list);
HashMap<Integer,String> map = new HashMap<>();
map.put(22,"jack");
map.put(33,"xingMing");
company.setMaps(map);
companies.add(company);
}
ObjectMapper mapper2 = new ObjectMapper();
try {
String json = mapper2.writeValueAsString(companies);
System.out.println(json);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
}
//将要转换为JSON字符串的对象定义
private static class User{
private Integer no;
private String name;
public Integer getNo() { return no; }
public void setNo(Integer no) { this.no = no; }
public String getName() { return name; }
public void setName(String name) { this.name = name;}
}
//复杂对象
private static class Company{
private int no;
private Set<String> set;
private List<String> name;
private HashMap<Integer,String> maps;
public int getNo() { return no; }
public void setNo(int no) { this.no = no; }
public Set getSet() { return set; }
public void setSet(Set set) { this.set = set; }
public List<String> getName() { return name; }
public void setName(List<String> name) { this.name = name; }
public HashMap<Integer, String> getMaps() { return maps; }
public void setMaps(HashMap<Integer, String> maps) { this.maps = maps; }
}
}
输出结果
Map 转换为JSON
转换为JSON : {"1":"neo","2":"zhao"}
自定义对象转换为JSON
[{"no":0,"name":"neo"},{"no":1,"name":"neo"},{"no":2,"name":"neo"},{"no":3,"name":"neo"},{"no":4,"name":"neo"}]
自定义对象较复杂转换为JSON
[{"no":0,"set":["zhao","neo"],"name":["musk","kaiWen","Helen"],"maps":{"33":"xingMing","22":"jack"}},{"no":1,"set":["zhao","neo"],"name":["musk","kaiWen","Helen"],"maps":{"33":"xingMing","22":"jack"}},{"no":2,"set":["zhao","neo"],"name":["musk","kaiWen","Helen"],"maps":{"33":"xingMing","22":"jack"}}]
maven
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.8.10</version>
</dependency>
本文详细介绍了如何使用Jackson库将Java对象转换为JSON格式,包括简单的Map转换、自定义对象转换以及复杂对象的转换,提供了丰富的代码示例。
1373

被折叠的 条评论
为什么被折叠?



