本工具用来把Java对象转换成JSON格式输出.小巧实用,接口友好欢迎大家拍砖,指导.
1 基本功能:
1.1
支持基本类型及其包装类和Date的解析.
1.2
支持指定关联关系类的解析
1.3
支持数组,List的解析
1.4
支持忽略一层嵌套类(见说明 3.2)
2 基本调用方法:
JSONUtil.object2JSON(object,stringBuffer,new Class[]{...});
3 说明:
3.1 思路就是解析指定你想要解析的类(new Class[]{...}),然后通过StringBuffer输出.
你指定什么就解析什么,不指定就不解析.这样做的目的就是既能自动解析对象又能减少无意义的数据解析也能从另一个层面避免嵌套. 如果不需要指定可以写成这样:
JSONUtil.object2JSON(object,stringBuffer)
3.2 root object 的类型不用指定,只需要指定内部属性就行。
3.3 嵌套不好防范,已经是你自己手动指定,所以请注意不要出现嵌套.本身出现嵌套的模型可能也有问题吧?就算是tree nodes也通常用是外键关联parent id来处理的。所以我基本是放弃了嵌套的处理,由你自己指定要处理的类,自己注意。
3.4 POJO里最好不要有setter,getter之外的方法,如果需要你完全可以写到工具类。已经处理过出现单独属性的情况.
3.5 可以定义DateFormat的格式,见下面的范例4.3
3.6 源码和UT附件下载.
4 范例:4.1基本解析:
WordType wt = new WordType();
wt.setName("f");
wt.setId(3);
Word w = new Word();
w.setName("a");
w.setType(wt);
JSONUtil.object2JSON(w,stringBuffer,new Class[]{WordType.class});
输出:
Word:{"name":"a","type":{"id":3,"name":"f"}}
4.2 数组和List解析
Tag t = new Tag();
t.setName("t");
Tag tt = new Tag();
tt.setName("tt");
Tag[] ttt = {t,tt};
WordType wt = new WordType();
wt.setName("f");
wt.setId(3);
Word w = new Word();
w.setName("a");
w.setType(wt);
w.setTags(ttt);
WordType wtt = new WordType();
wtt.setName("gg");
wtt.setId(2);
Word ww = new Word();
ww.setName("aa");
ww.setType(wtt);
ww.setTags(new Tag[]{t});
List<Tag> tagList = new ArrayList<Tag>();
tagList.add(t);
tagList.add(tt);
ww.setTagList(tagList);
JSONUtil.object2JSON(new Word[]{w,ww},stringBuffer,new Class[]{WordType.class,Tag.class});
输出:
[Word:{"name":"a","tags":[{"name":"t"},{"name":"tt"}],"type":{"id":3,"name":"f"}},Word:{"name":"aa","tagList":[{"name":"t"},{"name":"tt"}],"tags":[{"name":"t"}],"type":{"id":2,"name":"gg"}}]
4.3 基本类型,包装类,日期解析
LangObject lo = new LangObject();
lo.setBooleanValue(true);
lo.setByteValue(Byte.valueOf("2"));
lo.setCharacterValue(Character.valueOf('3'));
lo.setDoubleValue(4.0);
lo.setFloatValue(5f);
lo.setIntegerValue(6);
lo.setLongValue(7l);
lo.setShortValue(Short.valueOf("8"));
lo.setBooleanObject(true);
lo.setByteObject(Byte.valueOf("2"));
lo.setCharacterObject(Character.valueOf('3'));
lo.setDoubleObject(4.0);
lo.setFloatObject(5f);
lo.setIntegerObject(6);
lo.setLongObject(7l);
lo.setShortObject(Short.valueOf("8"));
lo.setUtilDate(new java.util.Date());
lo.setSqlDate(java.sql.Date.valueOf("2009-6-6"));
JSONUtil.DATE_FORMAT = "yyyy/MM/dd";
JSONUtil.object2JSON(lo,stringBuffer);
输出:
LangObject:{"booleanObject":"true","booleanValue":"true","byteObject":2,"byteValue":2,"characterObject":"3","characterValue":"3","doubleObject":4.0,"doubleValue":4.0,"floatObject":5.0,"floatValue":5.0,"integerObject":6,"integerValue":6,"longObject":7,"longValue":7,"shortObject":8,"shortValue":8,"sqlDate":"2009/06/06","utilDate":"2009/06/12"}
2009-6-25
上传:
用Collection接口替代List
去掉对象名
分享到:
相关推荐
JsonUtil json工具类 JsonUtil json工具类
不需要其他jar包,字符串一json之间转换,maptojson listtojson settojson等
Object obj=JsonUtil.instance().json2Obj(json,Object.class) Object[]objs=JsonUtil.instance().json2Obj(json,Object[].class); //泛型 DatagridReturn<Object> dgr=JsonUtil.instance().json2Obj(json...
CSDN上另外一篇博客的附带资源太贵了,我就整个最便宜的来造福社会吧! 内附使用说明,傻瓜式使用教学 //list 转json ...List<String> list2 = g2.fromJson(str1, new TypeToken<List<String>>(){}.getType());
Google json工具类,将java对象装换为json,支持泛型和任意类型
JSON jar包含源码及应用类JSONUtil,可以直接查看源码不用反编译,并且可以直接调用JSONUtil工具类进行,JSon字符串转换为JavaBean ,并可以把JavaBean转换为JSon字符串。
最近在搞一个json的需求,对端提供的json首字母都是大写的。这样转json起来有点难度,从csdn上贴的大神的解决方式,分值比较高。然后自己修改了下,符合自己的需求,就放在这里了。
JSONUtil java工具类,快速方便读取JSON
json_TO_clientdataset_JSONUtil包.rar 整理了一下 JSON 轉CLIENTDATASET 功能 相關單元文件, 從網絡下載的工具類: SUPEROBJECT.PAS, myUnicode.pas , uJSONDB.pas, uDeltaToSQL.pas, superxmlparser.pas 測試...
只需要传入数据模型,即可返回成json对象的数据,里面还包括一些格式化工具
Json解析的Jar包,包括json-lib-2.2.2-jdk15.jar等
json处理工具类json处理工具类json处理工具类json处理工具类
json工具类,基于com.google.code.gson封装的json转换工具类
struts2所需的包和Struts2 json所需包,直接导进去就能用,很适合新手开发以及测试Struts2返回json格式的数据。
Json的一个2个工具类,用于Json字符串和Object、List、HashMap的转换。
简单的Json Util项目,可帮助您快速创建Json。 Json util是对json操作的开发人员友好的sepc和api。 GsonUtil instance = GsonUtil.instance(); //Even number of params .. JsonObject jsonObject=gsonUtil....
实现json与struts的联合使用的方式,方便数据传递
自己搜集的所有json需要的驱动包,下载后解压,添加到项目里就可以用了
json-plugin自己下载在一起的多个文件
自己写的java json 生成工具,lyz包下面的lyzjson是我自己写的,util包下面的JsonUtil是老师写的。看下谁的好用点。多提建议,谢谢。