超轻量级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的不明真相的吃瓜群众。 ^ _ ^