jfire-codejson 是最快最自由的json框架,性能超越 fastjson 1 倍。支持策略能力。
已发布到maven中央仓库。link.jfire.codejson
性能强劲 codejson是迄今为止最为强大的json框架,序列化速度超越fastjson 50%,超越Jackson2 40%。反序列化性能超越Fastjson几倍。 自由定制输出 codejson除了可以完成常规的对属性的忽略和改名以为。依靠强大的策略能力,可以对序列化的输出做出任意的修改。可以对同一个对象,使用不同的策略 进行不同的输出。充分满足不同场景的使用要求。策略能力可以进行属性改名,属性忽略,对输出内容格式化,对某一种格式进行各耍等等,只要能想得出来,策略 能力都可以做到。 极致简单的API 对于序列化来说,只需要使用类似JsonTool.write(entity)一行静态代码即可得到json字符串。 对于反序列化来说,只需要使用类似JsonTool.read(User.class,str)一行静态代码即可将json字符串反序列化为pojo对象
JsonTool.write(entity)
JsonTool.read(User.class,str)
假设存在以下几个类
public class Person{ private String name; private int age; private boolean boy;}public class Home{ privaet String name; private Person host; private float height; private float weidth;}public static void main(String args[]){ Home home = new Home(); home.setPerson(new Person()); //这样就完成了将home转换为json字符串的动作 String json = JsonTool.write(home); //这样就完成了将json字符串转换为json对象的动作 JsonObject jsonObject =(JsonObject)jsonTool.fromString(json); //这样就完成了将json字符串转换为java对象的动作 Home result = JsonTool.read(Home.class,json); WriteStrategy strategy = new WriteStrategy(); //指定一个输出策略,将name这个属性名在输出的时候替换成hello strategy.addRenameField("Home.name", "hello"); json = strategy.write(home); strategy = new WriteStrategy(); //指定一个输出策略,将float输出的时候截止到小数点1位 strategy.addWriter(float.class,new WriterAdapter(){ public void write(float target,StringCache cache){ DecimalFormat format = new DecimalFormat("##.00"); cache.append(format.format(target)); } }); json = strategy.write(home);}