超轻量级Json4Bean工具包(小于30k),源码不依赖任何第三方jar包,可扩展
特点:
超轻量级Json4Bean工具包(小于30k),源码不依赖任何第三方jar包
方法与功能:
JSON.writeBean方法(生成非赋值) 根据传入json参数生成javaBean实体 支持自定义生成javaBean包名 支持自定义生成javaBean模式(嵌套内部类或外部类) 支持自定义生成javaBean代码注释模板 JSON.parseObject方法(赋值非生成) 把Json字符串转为javaBean对象 JSON.toJsonString方法 把javaBean对象转为字符串
演示 DEMO
示例代码 package com.javaear.json4bean; import com.javaear.test.Student; import java.io.File; public class Json4BeanTest { /* 测试json 数据 */ static String data = "[{/n" + " /"id/": 123,/n" + " /"name/": /"张三/",/n" + " /"firend/": {/n" + " /"fid/": /"f123/",/n" + " /"fname/": /"李四/"/n" + " },/n" + " /"subjects/": [/n" + " {/n" + " /"sid/": /"o123/",/n" + " /"sname/": /"王五/"/n" + " },/n" + " {/n" + " /"sid/": /"o124/",/n" + " /"sname/": /"马六/"/n" + " }/n" + " ]/n" + "}]"; public static void main(String[] args) { //JSON.setWriteMultiBean(true); //去掉此注释,生成javabean为多个对象,非内部类形式 //默认生成内部类JavaBean,可以通过去掉上边一行注释选择非内部类形式 writeBeanSimpleTest(); writeBeanWithPackageNameTest(); writeBeanWithPackageNameAndCodeTemplateTest(); parseObjectTest(); toJsonStringTest(); } /** * 极简生成测试 */ public static void writeBeanSimpleTest(){ JSON.writeBean(data, "Student"); } /** * 附带pageckName生成测试 */ public static void writeBeanWithPackageNameTest(){ JSON.writeBean(data, "Student", "com.javaear.test"); } /** * 附带pageckName、注释模板、生成测试 */ public static void writeBeanWithPackageNameAndCodeTemplateTest(){ JSON.setCodeTemplate(System.getProperty("user.dir") + File.separator + "json4bean/src/test/resources/code-template.txt"); JSON.writeBean(data, "Student", "com.javaear.test", System.getProperty("user.dir") + File.separator + "json4bean/src/test/java/" + "com/javaear/test"); } /** * 解析json字符串为bean测试 */ public static void parseObjectTest(){ Student student = JSON.parseObject(data, Student.class); System.out.println( "id为:"+student.getId()+ "name为:"+student.getName()+ "firend name为:"+student.getFirend().getFname()+ "subject 2 sname为:"+student.getSubjects().get(1).getSname()); } /** * 解析bean为Json测试 */ public static void toJsonStringTest(){ //调用parse方法赋值的对象 Student student = JSON.parseObject(data, Student.class); //解析bean为字符串 String str = JSON.toJsonString(student); System.out.println(str); } } 生成效果 /* * Copyright 2016-2016 Javaear Group Holding Ltd. */ package com.javaear.test; import java.util.List; /** * @author aooer */ public class Student { private Long id; private String name; private Firend firend; private List<Subjects> subjects; public static class Firend { private String fid; private String fname; /** * @return fid */ public String getFid() { return this.fid; } /** * @param fid fid */ public void setFid(String fid) { this.fid = fid; } /** * @return fname */ public String getFname() { return this.fname; } /** * @param fname fname */ public void setFname(String fname) { this.fname = fname; } } public static class Subjects { private String sid; private String sname; /** * @return sid */ public String getSid() { return this.sid; } /** * @param sid sid */ public void setSid(String sid) { this.sid = sid; } /** * @return sname */ public String getSname() { return this.sname; } /** * @param sname sname */ public void setSname(String sname) { this.sname = sname; } } /** * @return id */ public Long getId() { return this.id; } /** * @param id id */ public void setId(Long id) { this.id = id; } /** * @return name */ public String getName() { return this.name; } /** * @param name name */ public void setName(String name) { this.name = name; } /** * @return firend */ public Firend getFirend() { return this.firend; } /** * @param firend firend */ public void setFirend(Firend firend) { this.firend = firend; } /** * @return subjects */ public List<Subjects> getSubjects() { return this.subjects; } /** * @param subjects subjects */ public void setSubjects(List<Subjects> subjects) { this.subjects = subjects; } }
√表示已支持、×表示暂未支持
2.其他需要根据json生成javaBean的不明真相的吃瓜群众。 ^ _ ^