Google Gson实践3-处理复杂对象

处理复杂对象一个对象和另一个对象存在关系,比如组合关系,比如人和联系方式,一个人可以有多个联系方式,为了描述他们的关系。我们可以定义一个人类(Person),在定义一个联系方式类(Contact),在Person中持有Contact的属性,代码如下

定义Contact类

package com.txwh.bean;

public class Contact {
	private String email;
	private String phone;
	
	public Contact(){}
	
	public Contact(String email,String phone){
		this.email=email;
		this.phone=phone;
		
	}
	
	public String getEmail() {
		return email;
	}
	public void setEmail(String email) {
		this.email = email;
	}
	public String getPhone() {
		return phone;
	}
	public void setPhone(String phone) {
		this.phone = phone;
	}

}

定义Person类

package com.txwh.bean;

public class Person {
	private Long id;
	private String name;
	private Contact contact;//持有contact对象
	
	public Contact getContact() {
		return contact;
	}
	public void setContact(Contact contact) {
		this.contact = contact;
	}
	public Long getId() {
		return id;
	}
	public void setId(Long id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
}

测试程序类

package com.txwh.gson;

import com.google.gson.Gson;
import com.txwh.bean.Contact;
import com.txwh.bean.Person;
public class TestCompentObject {

	public static void main(String[] args) {
		preparedCompentObject();

	}
	
	public static void  preparedCompentObject(){
		Gson gson=new Gson();
		
		
		Person p=new Person();
		p.setId(new Long(4));
		p.setName("汪峰");
		p.setContact(new Contact("wangfeng@qq.com", "1381111111"));
		
		
		Person p2=new Person();
		p2.setId(new Long(4));
		p2.setName("章子怡");
		p2.setContact(new Contact("zhangzhiyi@qq.com","1388888888"));
		
		Person ps[]=new Person[]{p,p2};
		 //将复杂的数组转换为json字符串
		String text=gson.toJson(ps);
		System.out.println(text);
		System.out.println("\n\n\n");
		
		
		//将复杂的字符串转换为数组对象
		Person persons[]=gson.fromJson(text, Person[].class);
		for (Person person : persons) {
			System.out.println("id:"+person.getId()+" name:"+person.getName()+" conatact:"+person.getContact().getEmail());
			
		}
	}
}
运行结果:

[{"id":4,"name":"汪峰","contact":{"email":"wangfeng@qq.com","phone":"1381111111"}},{"id":4,"name":"章子怡","contact":{"email":"zhangzhiyi@qq.com","phone":"1388888888"}}]

id:4 name:汪峰 conatact:wangfeng@qq.com
id:4 name:章子怡 conatact:zhangzhiyi@qq.com

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值