打算在新的AJAX实现中用JSON做为数据传递的格式,看了JSON的资料,很合我意,结构简单,冗余数据少,在JavaScript中使用方便。但是看了相关的Project,没有找到一个在Java Bean和JSON之间转换的好工具。在这方面,Xtream做的算是不错的了,但是和我的希望还是有点差距,而且也不想因为这为这个原因就把Xtream这套庞大的东西都加到我的架构中去,必竟,我的一向的原则是:简单就是美。
于是写了一个Utils类,来实现我的这个想法,代码还没有完全实现,基本的用法在这里描述一下。
从Bean到JSON的过程:
BeanA a=new BeanA();
a.setName("Seally");
a.setSex("女");
a.setAge(25);
a.getList().add("one");
a.getList().add("two");
a.getList().add("three");
a.setArray(new String[]{"111","222","333"});
BeanB b=new BeanB();
b.setName("Larlf");
b.setIarray(new int[]{7,8,9,10});
a.setObj(b);
log.debug(JsonUtils.object2JsonString(a));
最后的结果会输出JSON字符串:
{"sex":"女","name":"Seally","age":25,"class":"com.opesoft.tools.BeanA","obj":{"iarray":[7,8,9,10],"name":"Larlf","class":"com.opesoft.tools.BeanB"},"list":["one","two","three"],"array":["111","222","333"]}
最后的字符串中会把Bean的Class生成为一个属性,这点在反向转换时起着重要作用。Array和Collection属性没有生成对应的Class,因为这部分信息可以通过反射的方法从对象中取出。Object属性就要有Class,因为很可能反射取出的是接口或父类,这里一定要把具体对象的类型保留下来。
反向生成对象代码如下:
String str2="{\"sex\":\"女\",\"name\":\"Seally\",\"age\":25,\"class\":\"com.opesoft.tools.BeanA\",\"obj\":{\"iarray\":[7,8,9,10],\"name\":\"Larlf\",\"class\":\"com.opesoft.tools.BeanB\"},\"list\":[\"one\",\"two\",\"three\"],\"array\":[\"111\",\"222\",\"333\"]}";
JSONObject json2=new JSONObject(str2);
BeanA bean2=(BeanA)JsonUtils.json2Object(json2);
log.debug(((BeanB)bean2.getObj()).getName());[\code]
从输出的信息可以看到根据JSON字符串重新构建出了对象。
111
这个工具类的思路基本如此,实现上还不是很完善,比如说对Collection属性的支持还不好,多维数组当前也不支持。最近几天我会把它的功能给补充完整,有了一个可用的版本就把原代码给发布上来。
分享到:
相关推荐
NULL 博文链接:https://elf8848.iteye.com/blog/259312
一个自制的json转换jar 直接调用JsonFactory.toJson()方法可将javaBean转换成json
BeanToJsonSchema Java bean转换为Json Schema
Java bean转换为Json Schema
在本篇文章里小编给大家整理的是关于java Bean与json间的转换的实例内容,有需要的朋友们吧可以学习参考下。
原生的java代码,用java代码实现json转换成java类bean对象,生成文件在当前类的同级目录
将json转换为javebean的工具,封装jsonschema2pojo,用户可以修改配置文件json2Beans.json,然后运行Json2JavaBean2.bat直接生成对应类。 能够批量转换json为bean,直接拷贝到项目中使用。 提醒: 需要提前安装java...
XML、JAVA、JSON多种方式互相转换,灵活运用高效
json-lib中的jsonobject的简单使用,并介绍了json与bean的转换 http://blog.csdn.net/lom9357bye/article/details/53291636
Java Bean对象和Map相互转换 使用Fastjson 和BeanMap 两种方式进行转换
要使程序可以运行必须引入JSON-lib包,JSON-lib包同时依赖于以下的JAR包: JSON-lib包是一个beans,collections,maps,java arrays 和XML和JSON互相转换的包。
直接把类阿什么的转换为json字符串向前台js界面传送,异常简单,用flex和ext等js框架的人都可以用
详解json string转换为java bean及实例代码.docx
下面小编就为大家带来一篇Java中Json字符串直接转换为对象的方法(包括多层List集合)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
这是一个用原生java代码写的jaon字符串转javaBean的工具类,V1.0版
小测试,将JavaBean与JsonString的相互转换。
为了高效地将Json对象转化成Java bean对象,传统上我们是在运行是利用反射来实现
json 所需要的jackson-annotations-2.4.0.jar,jackson-core-2.4.2.jar, jackson-databind-2.4.2.jar,jackson-mapper-asl-1.9.11.jar
(2)ezmorph是一个简单的java类库,用于将一种bean转换成另外一种bean。其动态bean的实现依赖于commons-beanutils包。ezmorph可以在这个地方下载源码:http://sourceforge.net/projects/ezmorph/files/ezmorph/ (3...
上个版本的有bug,这个版本进行修正,已经完美了,有心的可以简化一下,很多重复代码和类似的功能