【第3篇】通过JSON-Lib把数组转换成Json数据

package ivyy.taobao.com.domain.jsonlib;

import ivyy.taobao.com.entity.Address;

import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import net.sf.json.JSONArray;
import net.sf.json.JSONObject;

/**
 *@DEMO:json
 *@Java:ArrayToJson.java
 *@Date:2015-1-18下午5:17:19
 *@Author:liangjilong
 *@Email:jilongliang@sina.com
 *@Weibo:http://weibo.com/jilongliang
 *@Version:1.0
 *@Description:通过JSON-Lib把数组转换成Json数据
 */
public class ArrayToJson {

	/**
	 * @param args
	 */
	public static void main(String[] args) throws Exception{
		//getArrayToJson();
		getArrayToJsonByMap();
	}
	/**
	 * 通过ByJSONLib把数组转换成Json数据
	 * @param url
	 * @throws Exception
	 */
	private static void getArrayToJson()throws Exception
	{ 
		Address address=new Address();
		address.setProvince("广东省");
		address.setCity("云浮市");
		address.setDistrict("云城区东升布艺");
		address.setWeibo("http://weibo.com/resourceljl");
		JSONArray jsonArr = JSONArray.fromObject(address);  //把对象转换成Json对象
		List<Address> lists = JSONArray.toList(jsonArr, Address.class); //把对象Json数组转换成Json数组
	    for (Address obj : lists) {  
	    	System.out.println(obj.getProvince());
	    	System.out.println(obj.getCity());
	    	System.out.println(obj.getDistrict());
	    	System.out.println(obj.getWeibo());
	    }
	}
	/**
	 * 结合Map去通过JSON-Lib把数组转换成Json数据
	 * @param url
	 * @throws Exception
	 */
	private static void getArrayToJsonByMap()throws Exception
	{ 
		Address address=new Address();
		address.setProvince("广东省");
		address.setCity("云浮市");
		address.setDistrict("云城区东升布艺");
		address.setWeibo("http://weibo.com/resourceljl");
		JSONArray jsonArr = JSONArray.fromObject(address);  //把对象转换成Json对象
		 //注释掉的也可以执行
		Map<String, Class<Address>> map=new HashMap<String,Class<Address>>();
		map.put("address", Address.class);
	    List<Address> lists = JSONArray.toList(jsonArr, Address.class, map); //把对象Json数组转换成Json数组
	    
	    System.out.println("-----------------------方法一-----------------------");
	    //-----------------------方法一-----------------------
	    for (Address obj : lists) {  
	    	System.out.println(obj.getProvince());//获取省的数据
	    	System.out.println(obj.getCity());//获取城市的数据
	    	System.out.println(obj.getDistrict());//获取街道的数据
	    	System.out.println(obj.getWeibo());//获微博的数据
	    }
	    
	    System.out.println("-----------------------方法二-----------------------");
	    
	    //-----------------------方法二-----------------------
	    for (Iterator iterator = lists.iterator(); iterator.hasNext();) {
			Address obj = (Address) iterator.next();
			System.out.println(obj.getProvince());
	    	System.out.println(obj.getCity());
	    	System.out.println(obj.getDistrict());
	    	System.out.println(obj.getWeibo());
		}
	    
	    System.out.println("-----------------------方法三-----------------------");
	    //-----------------------方法三-----------------------
	    for (int i = 0; i < lists.size(); i++) {
	    	JSONObject obj = JSONObject.fromObject(lists.get(i));
	    	System.out.println(obj.get("province"));
	    	System.out.println(obj.get("city"));
	    	System.out.println(obj.get("district"));
	    	System.out.println(obj.get("weibo"));
	    	
		}
	    
	    System.out.println("-----------------------方法四-----------------------");
	    
		Iterator<Address> itera=lists.iterator();
		do{
			Address obj=itera.next();
			System.out.println(obj.getProvince());
	    	System.out.println(obj.getCity());
	    	System.out.println(obj.getDistrict());
	    	System.out.println(obj.getWeibo());
		}while(itera.hasNext());
		
		  
	    System.out.println("-----------------------方法五-----------------------");
		
		Iterator<Address> it = lists.iterator();
		
		//判断必须有值的时候就取值出来.如果没值的话会报错
		while (!it.hasNext()) {
			Address obj=itera.next();
			if(obj!=null)
			System.out.println(obj.getProvince());
	    	System.out.println(obj.getCity());
	    	System.out.println(obj.getDistrict());
	    	System.out.println(obj.getWeibo());
		}
	}
}
package ivyy.taobao.com.entity;

import java.io.Serializable;

import com.google.gson.annotations.Expose;
/**
 * Gson gson=new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
 * 创建Gson对象,没有@Expose注释的属性将不会被序列化
 * serialize序列化 默认 true
 * deserialize反序列化 默认 true
 * @author liangjilong
 * @Email:jilongliang@sina.com
 */
public class Address implements Serializable{
	@Expose(serialize=false)// 序列化  /Address类已经序列化
	private int id;
	@Expose(deserialize=false)// 反序列化
	private String country;//国家
	private String province;//省份
	private String city;//城市
	private String street;//街道
	private String district;//地区
	private String cityCode;//邮政编码
	private String streetNumber;//街道号
	private String weibo;//微博
	public Address() {
	}
	
	public Address(int id,String country) {
		this.id=id;
		this.country=country;
	}
	public String getCityCode() {
		return cityCode;
	}
	public void setCityCode(String cityCode) {
		this.cityCode = cityCode;
	}
	public String getStreetNumber() {
		return streetNumber;
	}
	public void setStreetNumber(String streetNumber) {
		this.streetNumber = streetNumber;
	}
	public String getStreet() {
		return street;
	}
	public void setStreet(String street) {
		this.street = street;
	}
	public String getDistrict() {
		return district;
	}
	public void setDistrict(String district) {
		this.district = district;
	}
	public String getCity() {
		return city;
	}
	public void setCity(String city) {
		this.city = city;
	}
	public String getProvince() {
		return province;
	}
	public void setProvince(String province) {
		this.province = province;
	}

	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	public String getCountry() {
		return country;
	}

	public void setCountry(String country) {
		this.country = country;
	}

	public String getWeibo() {
		return weibo;
	}

	public void setWeibo(String weibo) {
		this.weibo = weibo;
	}
	
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱学习的蹭蹭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值