1.之前用jsonUtil工具发现不是太好用,后来在工作中发现Jackson的转换方式挺好用,所以写了个例子贴出来以便自己加深记忆,以及和大家一起分享一下,如有不对之处还请大家给予指正,共同进步哈!话不多说直接贴代码
- 第一步,在项目中导入jackson相关依赖 我用的是maven
<!-- 导入jackson依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.4</version>
</dependency>
<!-- 导入lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
- 创建 VoteItem实体类: 我的实体类没有写set/get方法 因为我引入了lombok依赖 所以不需要写了
/**
* @ProjectName: [OperationData]
* @Package: [tide.jstv.operationdata.model.vote.VoteItem]
* @ClassName: [VoteItem]
* @Description: [投票选题实体类]
* @Author: [jiangsu jstv]
* @CreateDate: [2019/3/21 16:36]
* @UpdateUser: [jiangsu jstv]
* @Version: [v1.0]
*/
@Data
public class VoteItem {
/**
* 标识
*/
private Integer id;
/**
* 租户id
*/
private String tenantId;
/**
* 创建日期
*/
private Date createTime;
/**
* voteInfos关联表id
*/
private Integer voteInfoId;
/**
* 标题
*/
private String title;
/**
* 选项类型
*/
private Integer pickType;
/**
* 排序数字
*/
private Integer OrderNumber;
/**
* 关联报名表id
*/
private String signSourceId;
/**
*
*/
private String souceId;
private List<ItemOption> voteOptions;
}
- 接下来就是对jackson的使用方式
package tide.jstv.operationdata.controller.sign;/**
* Created by liulu on 2019/3/29.
*/
import com.fasterxml.jackson.databind.ObjectMapper;
import tide.jstv.operationdata.model.vote.VoteItem;
import java.io.IOException;
import java.util.*;
/**
* @ProjectName: []
* @Package: [.]
* @ClassName: []
* @Description: [一句话描述该类的功能]
* @Author: []
* @CreateDate: [ ]
* @UpdateUser: []
* @UpdateDate: [ ]
* @UpdateRemark: [说明本次修改内容]
* @Version: [v1.0]
*/
public class Demo {
public static void main(String[] args) throws IOException {
/**
* 先 new ObjectMapper对象
*/
ObjectMapper om = new ObjectMapper();
/**
* 创建一个对象用来存数据
*/
VoteItem vi = new VoteItem();
vi.setId(123);
vi.setTenantId("租户id");
vi.setCreateTime(new Date());
vi.setSouceId("abc");
vi.setTitle("标题");
/**
* 对象转json
*/
String json = om.writeValueAsString(vi);
System.out.println(json);
/**
* json转对象
*/
VoteItem voteItem = om.readValue(json, VoteItem.class);
System.out.println(voteItem.getCreateTime());
/**
* List 转json
*/
List<String> list = new ArrayList<>();
list.add("诸葛亮");
list.add("司马懿");
list.add("大乔");
list.add("小乔");
list.add("关羽");
list.add("dwayne_liu");
String json1 = om.writeValueAsString(list);
System.out.println(json1);
/**
* json 转 list
*/
ArrayList<String> arrayList = om.readValue(json1, ArrayList.class);
for (int i = 0; i < arrayList.size(); i++) {
System.out.println(arrayList.get(i));
}
/**
* list<VoteItem>转json
*/
List<VoteItem> list1 = new ArrayList<>();
list1.add(vi);
String json2 = om.writeValueAsString(list1);
System.out.println(json2);
/**
* json 转list<VoteItem>
*/
ArrayList<VoteItem> arrayList1 = om.readValue(json2, ArrayList.class);
for (VoteItem item : arrayList1) {
System.out.println(item);
}
/**
* json转map
*/
HashMap<String,Object> hashMap = om.readValue(json2, HashMap.class);
Set<Map.Entry<String, Object>> set = hashMap.entrySet();
Iterator<Map.Entry<String, Object>> iterator = set.iterator();
while (iterator.hasNext()) {
Map.Entry<String, Object> next = iterator.next();
System.out.println(next.getKey()+"======"+next.getValue());
}
/**
* Map 转json
*/
String json3 = om.writeValueAsString(hashMap);
System.out.println(json3);
}
}