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

来源:互联网 发布:中山市广电网络营业厅 编辑:程序博客网 时间:2024/04/29 21:07
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