开发者社区> javaboy2012> 正文

java对象和json数据转换实现方式2-使用gson实现

简介:
+关注继续查看

测试代码:


package com.yanek.util.json;

import java.util.ArrayList;
import java.util.List;

import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonElement;
import com.google.gson.JsonParser;

public class GsonUtil {

	/**
	 * @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();
		
		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));
		
		

	}
	
	
	    private static Gson gson = new GsonBuilder().create();
	    
	    public static String bean2Json(Object obj){
	        return gson.toJson(obj);
	    }
	    
	    public static <T> T json2Bean(String jsonStr,Class<T> objClass){
	        return gson.fromJson(jsonStr, objClass);
	    }
	    
	    public static String jsonFormatter(String uglyJsonStr){
	        Gson gson = new GsonBuilder().setPrettyPrinting().create();
	        JsonParser jp = new JsonParser();
	        JsonElement je = jp.parse(uglyJsonStr);
	        String prettyJsonString = gson.toJson(je);
	        return prettyJsonString;
	    }

}

输出如下:


json1:::{"RoomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}],"id":1,"name":"name1"}
json2:::{"RoomTypeVOs":[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}],"id":1,"name":"name1"}
json3:::[{"typeid":1,"typename":"nnn1","price":"20"},{"typeid":1,"typename":"nnn1","price":"20"}]
json4:::[{"typeid":1.0,"typename":"nnn1","price":"20"},{"typeid":1.0,"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;

}



版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Python/PHP/JS对象与json数据的转换key顺序问题
Python/PHP/JS对象与json数据的转换key顺序问题
24 0
第11章—使用对象关系映射持久化数据—SpringBoot+SpringData+Jpa进行查询修改数据库
SpringBoot+SpringData+Jpa进行查询修改数据库 JPA由EJB 3.0软件专家组开发,作为JSR-220实现的一部分。但它又不限于EJB 3.0,你可以在Web应用、甚至桌面应用中使用。
1119 0
Java:jackson将xml和json转为JavaBean对象
Java:jackson将xml和json转为JavaBean对象
50 0
Java基础-22总结登录注册IO版,数据操作流,内存操作流,打印流,标准输入输出流,转换流,随机访问流,合并流,序列化流,Properties
你需要的是什么,直接评论留言。 获取更多资源加微信公众号“Java帮帮” (是公众号,不是微信好友哦) 还有“Java帮帮”今日头条号,技术文章与新闻,每日更新,欢迎阅读 学习交流请加Java帮帮交流QQ群553841695 分享是一种美德,分享更快乐! 1:登录注册IO版本案例(掌握) 要求,对着写一遍。 cn.i
1810 0
“化繁为简”-神奇的Jar命令 | 带你学《Java面向对象编程》之六十九
简单的测试开发中可以通过javac命令进行编译,但当类的数量变多以后,编译出的.class文件也会急剧增多,本节将教你使用jar命令进行打包处理这些文件。
1030 0
json的使用 前后台统一以对象的方式编程 (转)
前台插件的介绍 jquery.json 插件{jQuery插件} 主要方法: $.toJSON(json对象): 将json对象转化为字符串 $.evalJSON(str): 将字符串转化为json对象 插件下载: jquery.
933 0
Dozer对象映射框架Map到JSONString映射问题排查
## 引言 Dozer是一个优秀的对象映射的框架,可以帮助程序员减少大量的对象之间映射的get/set代码,在ATA上有好几篇文章介绍了dozer的使用: [dozer开发手册](http://www.atatech.org/articles/31144) [使用Dozer帮你提高开发效率(解决繁琐的DO转BO、TO转BO问题)](http://www.atatech.org/article
4676 0
+关注
javaboy2012
学习是一种精神,分享是一种美德
323
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
JS零基础入门教程(上册)
立即下载
性能优化方法论
立即下载
手把手学习日志服务SLS,云启实验室实战指南
立即下载