转换利器Gson

一Gson的作用:
Gson 是 Google 提供的用来在 Java 对象和 JSON 数据之间进行映射的 Java 类库。可以将一个 JSON 字符串转成一个 Java 对象,或者反过来。
二如何使用Gson
1. 下载Gson的jar包,拷贝到项目的lib文件夹中,并将其加入到buildPath中。使用maven的同学,直接在pom中加入以下依赖即可:


  com.google.code.gson
  gson
  2.2.4

2. 编写实体类:

public class People {
  String name;
  int age;
  boolean setName;
  public String getName() {
    return name;
  }
  public void setName(String name) {
    this.name = name;
  }
  public int getAge() {
    return age;
  }
  public void setAge(int age) {
    this.age = age;
  }
  public boolean getSetName() {
    return setName;
  }
  public void setSetName(boolean setName) {
    this.setName = setName;
  }
  @Override
  public String toString() {
    return “name=” + name + ” age=” + age + ” setName=” +setName;
  }
}
3. 编写测试类GsonTest

import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
* Convert java object to json.
*/
public class GsonTest {
  public static void main(String[] args) {
    People p = new People();
    p.setAge(20);
    p.setName(“People”);
    p.setSetName(true);
    Gson gson = new Gson();
    System.out.println(gson.toJson(p));
  }
}
4. 输出结果:

{“name”:”People”,”age”:20,”setName”:true}
5. 这只是最简单的Gson的使用。如果我们需要将bool类型的属性setName在转换成json的时候不转换,怎么实现呢?

  在Gson的包中找半天,发现com.google.gson包下面有这么一个接口:ExclusionStrategy ,虽然不清楚是干什么的,但是根据名字,可以推断,这个接口是用来设置Gson转换的排除策略的,于是在官网http://google-gson.googlecode.com/svn/trunk/gson/docs/javadocs/index.html查了一下这个接口,发现只要实现这个接口,并将实现类的对象塞给Gson,在转换成json的时候,Gson就会过滤掉指定的类或者属性。于是有了下面的代码:

import com.google.gson.ExclusionStrategy;
import com.google.gson.FieldAttributes;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
/**
 * Convert java object to json, skip specific fileds.
 */
public class GsonTest {
  public static void main(String[] args) {
    People p = new People();
    p.setAge(20);
    p.setName(“People”);
    p.setSetName(true);
    ExclusionStrategy excludeStrategy = new SetterExclusionStrategy();
    Gson gson1 = new GsonBuilder()
      .setExclusionStrategies(excludeStrategy)
      .create();
    Gson gson2 = new Gson();
    String json1 = gson1.toJson(p);
    String json2 = gson2.toJson(p);
    System.out.println(json1);
    System.out.println(json2);

    People p1 = gson1.fromJson(json1, People.class);
    People p2 = gson2.fromJson(json2, People.class);
    System.out.println(p1);
    System.out.println(p2);
  }

  private static class SetterExclusionStrategy implements ExclusionStrategy {
    public boolean shouldSkipClass(Class

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值