java对象和json数据转换实现方式3-使用jackson实现
2023-09-14 09:08:55 时间
測试代码:
package com.yanek.util.json; import java.io.IOException; import java.io.StringWriter; import java.util.ArrayList; import java.util.List; import com.fasterxml.jackson.core.JsonFactory; import com.fasterxml.jackson.core.JsonGenerator; import com.fasterxml.jackson.core.JsonParseException; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; public class JacksonUtil { /** * @param args */ public static void main(String[] args) { Hotel h1=new Hotel(); h1.setId(1); h1.setName("name1"); Hotel h2=new Hotel(); h2.setId(2); h2.setName("name2"); RoomTypeVO t1=new RoomTypeVO(); t1.setPrice("20"); t1.setTypeid(1); t1.setTypename("nnn1"); List<RoomTypeVO> RoomTypeVOs=new ArrayList<RoomTypeVO>(); RoomTypeVOs.add(t1); RoomTypeVOs.add(t1); h1.setRoomTypeVOs(RoomTypeVOs); Hotel hotel=new Hotel(); try { System.out.println("json1:::"+bean2Json(h1)); String s=bean2Json(h1); hotel=json2Bean(s,Hotel.class); System.out.println("json2:::"+bean2Json(hotel)); System.out.println("json3:::"+bean2Json(RoomTypeVOs)); String s2=bean2Json(RoomTypeVOs); List<RoomTypeVO> RoomTypeVOs2=new ArrayList<RoomTypeVO>(); RoomTypeVOs2=json2Bean(s2,List.class); System.out.println("json4:::"+bean2Json(RoomTypeVOs2)); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } } public static String bean2Json(Object obj) throws IOException { ObjectMapper mapper = new ObjectMapper(); StringWriter sw = new StringWriter(); JsonGenerator gen = new JsonFactory().createJsonGenerator(sw); mapper.writeValue(gen, obj); gen.close(); return sw.toString(); } public static <T> T json2Bean(String jsonStr, Class<T> objClass) throws JsonParseException, JsonMappingException, IOException { ObjectMapper mapper = new ObjectMapper(); return mapper.readValue(jsonStr, objClass); } }
输出例如以下:
json1:::{"id":1,"name":"name1","roomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]} json2:::{"id":1,"name":"name1","roomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]} json3:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}] json4:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]
相关实体类:
package com.yanek.util.json; import java.util.List; public class Hotel { public List<RoomTypeVO> getRoomTypeVOs() { return RoomTypeVOs; } public void setRoomTypeVOs(List<RoomTypeVO> roomTypeVOs) { RoomTypeVOs = roomTypeVOs; } private List<RoomTypeVO> RoomTypeVOs; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } private int id; private String name; } package com.yanek.util.json; public class RoomTypeVO { public int getTypeid() { return typeid; } public void setTypeid(int typeid) { this.typeid = typeid; } public String getTypename() { return typename; } public void setTypename(String typename) { this.typename = typename; } public String getPrice() { return price; } public void setPrice(String price) { this.price = price; } private int typeid; private String typename; private String price; }
相关文章
- Java中日期转json时日期格式转换
- Java中List, Integer[], int[]的相互转换
- 数据结构Java实现06----中缀表达式转换为后缀表达式
- Java实现 LeetCode 538 把二叉搜索树转换为累加树(遍历树)
- Java实现 LeetCode 108 将有序数组转换为二叉搜索树
- java实现还款计算
- java实现立方和等式
- Java实现 蓝桥杯VIP 算法训练 比较字符串
- Java实现 蓝桥杯VIP 算法训练 ALGO-16进制转换
- Java实现 蓝桥杯VIP 算法训练 ALGO-85进制转换
- Java实现 蓝桥杯VIP 算法训练 字符串逆序
- Java实现 蓝桥杯VIP 基础练习 时间转换
- Java实现 蓝桥杯VIP 基础练习 时间转换
- JAVA-IO操作,字节-字符转换流
- java数据类型大转换
- Java -- JDBC 学习--通过 ResultSet 执行查询操作
- atitit.商业版 源码保护 与 java本地原生代码转换 的方案总结
- Atititjs javascript异常处理机制与java异常的转换.js exception process
- Java面试题:字符串转换为数字
- 深入解析Java适配器模式:将接口转换为你所需要的形式
- java web 分页实现
- java-Unicode与中文的转换
- Java:String和List互相转换
- Java中使用Jackson,对JSON和对象进行转换