将Json对象转成JAVA Bean对象的实用工具 —— JsonLube

简介: JsonLube用于将Json对象转成JAVA Bean对象,不同于传统在运行时进行反射的方式,JsonLube采用在编译时自动生成解析Json的代码,使用方式依然简单,然而在移动平台上却可以收获更好的性能。

功能简述

JsonLube用于将Json对象转成JAVA Bean对象,不同于传统在运行时进行反射的方式,JsonLube采用在编译时自动生成解析Json的代码,使用方式依然简单,然而在移动平台上却可以收获更好的性能。

使用方式

gradle配置

    annotationProcessor 'com.alibaba.android:jsonlube-compiler:1.0.0.9@jar'
    compile ('com.alibaba.android:jsonlube:1.0.0.3@aar'){
        transitive=true
    }

Proguard配置

-keep @com.alibaba.android.jsonlube.ProguardKeep public class *

Json -> Java Bean

//1. 在代码中直接调用 JsonLube.fromJson()将Json对象转成Java bean对象。
Teacher teacherBean = JsonLube.fromJson(jsonData, Teacher.class);
//2. 在Teacher类的定义中加上@FromJson注解
@FromJson
public class Teacher {
  ...
}

Java Bean -> Json

//1. 直接调用JsonLube.toJson()函数
JsonObject teacherJson = JsonLube.toJson(teacherBean);
//2. 在Teacher类的定义中加上@ToJson注解
@ToJson
public class Teacher {
  ···
}

具体的bean的例子

//在JsonLube.fromJson()/JsonLube.toJson()直接使用到的Java bean类需要加上@FromJson/@ToJson注解,间接引用到的bean无需添加。
//这两个注解根据需要自行添加,如果只需要做反序列化能力,则添加@FromJson一个就够了。
@FromJson
@ToJson
public class Teacher {
  public String name; //支持public成员变量
  private int age; // 支持getter / setter函数
  public int getAge(){
    return this.age;
  }
  public void setAge(int age){
    this.age = age;
  }
  @JsonLubeField(name="sex")
  public int s;
  public List<Student> students;  //支持bean的嵌套
}
public class Student {
  public String name;
  public int age;
  public int sex;
}


相关文章
|
3天前
|
监控 Java 数据库连接
Java开发者的实用性能调优技巧与工具
Java开发者的实用性能调优技巧与工具
|
1天前
|
存储 前端开发 Java
Java中的不同Bean作用域
【7月更文挑战第5天】
9 0
Java中的不同Bean作用域
|
4天前
|
Java 数据安全/隐私保护
Java中的类与对象详解
Java中的类与对象详解
|
4天前
|
Java
Java中的对象克隆详解
Java中的对象克隆详解
|
2天前
|
IDE Java 持续交付
Java中的代码质量检查与自动化工具
Java中的代码质量检查与自动化工具
|
2天前
|
Java 数据安全/隐私保护
Java中的类与对象详解
Java中的类与对象详解
|
2天前
|
XML JSON JavaScript
Java中的XML与JSON数据格式处理技巧
Java中的XML与JSON数据格式处理技巧
|
2天前
|
敏捷开发 Java jenkins
实现Java中的自动化测试策略和工具推荐
实现Java中的自动化测试策略和工具推荐
|
2天前
|
存储 Java
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
Redis08命令-Hash类型,也叫散列,其中value是一个无序字典,类似于java的HashMap结构,Hash结构可以将对象中的每个字段独立存储,可以针对每字段做CRUD
|
3天前
|
JSON Java 数据格式
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}
前后端数据交换,JSON基础语法和JSON数据和Java对象转换,最快的对象转换,JSON{““}字符串如何写User{id=1,username=‘zhangsan‘,password=‘123‘}