编写自己的json解析工具二

来源:互联网 发布:淘宝能买到烟吗 编辑:程序博客网 时间:2024/05/17 04:23

已经有一段时间了这是我json工具的第二篇,距离第一篇《编写自己的json解析工具一》已经有一段时间了。期间的原因有很多,懒、忙于其他工作、还有中间碰到了很多本来没想过的细节问题。现在已经基本写好,可以使用但是有着很多限制,还是水平不够吧,权当给新学者参考一下,老手看了估计要喷了。这是第一次完整的摆放上来,代码结构不是很清晰,后面再重构。

此工具除jdk此外不依赖其他第三方包,最重要的类JSONUtil运用了很多反射,平时不怎么接触,也是现学先写。其他的如JSONException,Person,Phone等都是为其提供支持的,很简单。

JSONUtil使用方法:

运用主要的4个静态方法,可以实现json与Java内置对象,json与自定义javaBean间的转换,限于个人水平,对转换和对象有一定限制。javadoc描述


整个包生成Java doc如图:


部分测试代码及效果:

(有好几个测试方法,此处是测试Javabean转json,再由json转回javabean)

<span style="font-family:Arial;font-size:12px;">Person p=new Person("KJ405891","MUMU-XCJ",23);Phone phone1=new Phone("CN-HW-20141230001","荣耀5",1999.9);Phone phone2=new Phone("CN-MZ-20141230001","魅族MX9",888.0);p.addPhone(phone1);p.addPhone(phone2);try {//解析personString json2=JSONUtil.beanToJson(p);System.out.println(json2);Person p4=JSONUtil.jsonToBean(json2, Person.class);System.out.println("his name:"+p4.getName()+",his age:"+p4.getAge()+ ",his first phone brand:"+p4.getPhonelist().get(0).getBrand()+",price:"+p4.getPhonelist().get(0).getPrice());} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}</span>


控制台截图:

//输出1


//输出2


后期优化打算:

1、重构代码,让代码模块更清晰。

2、增加对各种类型的支持,修补bug,使工具更实用。


两个附件:

jar包

java source

(由于博客不方便附件源码,请移步到我的开源中国代码分享,http://www.oschina.net/code/snippet_2012023_45074)

0 0
原创粉丝点击