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;
}
}