gson小试牛刀——复杂对象和JSON字符串相互转化

本文通过一个实例展示了如何使用Gson库在Java中将复杂对象转化为JSON字符串,以及如何从JSON字符串还原回Java对象。文章指出,Gson库提供了丰富的API,对于有此类需求的开发者来说非常方便。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

好久没有写过Java的代码了,之所以写这个题目,是因为同事的遇到的一个疑问,半小时内恢复功力,将其解决掉。

这里所说的复杂对象是那种属性是另外一个类型的类。

下面的例子使用gson,将java对象转化为json字符串,根据一个json字符串构造出java对象。

直接上码:

Province类:

public class Province {

    public String PName;
    public String PCode;
    @Override
    public String toString() {
        return "Province [PName=" + PName + ", PCode=" + PCode + "]";
    }
}


City类:

public class City {

	public String Name;
	public String Code;
	public Province province;
	@Override
	public String toString() {
		return "City [Name=" + Name + ", Code=" + Code + ", province="
				+ province.toString() + "]";
	}
	
}

County类:

public class County {

	public String Name;
	public String Code;
	public City city;
	@Override
	public String toString() {
		return "County [Name=" + Name + ", Code=" + Code + ", city=" + city.toString()
				+ "]";
	}
	
	
}

Test类,程序入口:

import com.google.gson.*;

public class Test {

    /**
     * @param args
     */
    public static void main(String[] args) {

        Province p;
        City city;
        County county;

        p = new Province();
        p.PName = "河北";
        p.PCode = "130";

        city = new City();
        city.Code = "6";
        city.Name = "保定";
        city.province = p;

        county = new County();
        county.city = city;
        county.Name = "顺平县";
        county.Code = "36";
        // 以上,构建了一个复杂对象County的实例:county

        // 创建Gson对象
        Gson gson = new GsonBuilder().setPrettyPrinting().create();
        // java对象转化为json字符串
        String s = gson.toJson(county);
        System.out.println(s);

        String s2 = "{'Name':'上地','Code': '03',  'city': {'Name': '海淀','Code':'02','province': {'PName':'北京','PCode':'110'}}}";

        // json字符串转换为java对象
        County city2 = gson.fromJson(s2, County.class);
        // 将其输出
        System.out.println(city2);
    }
}


运行结果:

{
  "Name": "顺平县",
  "Code": "36",
  "city": {
    "Name": "保定",
    "Code": "6",
    "province": {
      "PName": "河北",
      "PCode": "130"
    }
  }
}
County [Name=上地, Code=03, city=City [Name=海淀, Code=02, province=Province [PName=北京, PCode=110]]]


体会:gson用着很方便,api很丰富,有类似需求会优先考虑。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值