【第13篇】通过GSON的JsonParser去读取数据处理json数据
来源:互联网 发布:房地产数据来源 编辑:程序博客网 时间:2024/05/22 15:53
package ivyy.taobao.com.domain.gson; import ivyy.taobao.com.entity.Address;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import net.sf.json.JSONArray;import com.google.gson.Gson;import com.google.gson.JsonArray;import com.google.gson.JsonElement;import com.google.gson.JsonObject;import com.google.gson.JsonParser;/** *@DEMO:napp *@Author:jilongliang *@Date:2013-7-20 */public class JsonParse { private static Gson gson=new Gson(); /** * 通过JsonLib把数组转换成Json数据 * @param url * @throws Exception */private static JSONArray getArrayToJsonByJsonLib()throws Exception{JSONArray jsonArr=null;List<Address> lists=new ArrayList<Address>();for (int i = 1; i <=12; i++) {Address addr = new Address(); addr.setProvince("第"+i+"个省份");addr.setCity("第"+i+"个城市");addr.setCityCode("130"+i);addr.setStreet("街道"+i);addr.setStreetNumber("街道号码"+i);lists.add(addr);}jsonArr = JSONArray.fromObject(lists); //把对象转换成Json对象return jsonArr;}public static void main(String[] args)throws Exception{getJsonGson(); }/** * 利用Json-lib封装数组Json数据,Gson解析Json数据. * @throws Exception */private static void getJsonGson() throws Exception {//Json-lib的JSONArray数组对象JSONArray JsonArray =getArrayToJsonByJsonLib();String jsonData=JsonArray.toString();/* * 自己组装成一个json格式,格式必须为{,,}才能为JsonElement对象的parse方法解析不是否则 * 会报错com.google.gson.JsonSyntaxException: java.io.EOFException: End of input at line 1 column 1307 */String json="{status:1,address:"+jsonData+"}";// 创建一个JsonParserJsonParser parser = new JsonParser();JsonElement jsonEl = parser.parse(json);JsonObject jsonObj = null;jsonObj = jsonEl.getAsJsonObject();//转换成Json对象String status=jsonObj.get("status").getAsString();//status节点//System.out.println(status);JsonElement addressEl=jsonObj.get("address");//address节点if(addressEl.isJsonArray()){//判断是否为Json数组JsonArray jsonArray= addressEl.getAsJsonArray();//转为数组for(Iterator iter=jsonArray.iterator();iter.hasNext();){JsonObject obj=(JsonObject) iter.next();//String city=obj.get("city").getAsString();//方法一:根据key形势取值System.out.println(obj);Address add=gson.fromJson(obj, Address.class);//方法二:灵活使用Gson取数据System.out.println(add.getProvince()+"\t"+add.getCity()); }}} }
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
- 【第13篇】通过GSON的JsonParser去读取数据处理json数据
- 【第14篇】通过GSON的JsonReader去读取数据处理json数据
- 【第11篇】通过GSON的TreeReader与JsonReader去处理json数据
- 【第12篇】通过GSON的WriterReader与JsonReader去处理json数据
- 【第10篇】通过json-lib的JsonConfig去读取对象数据json
- 【第22篇】通过JackJson去读取Json数组数据
- 【第21篇】通过Gson去把字符串转成json,对象转成Json,数组转换成Json处理Json数据
- 灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子
- 灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子
- 灵活组装Json的数据使用Gson的JsonParser和JsonReader解析Json详解例子
- Gson的JsonParser使用
- Gson-JsonParser解析Json字符串
- 【第28篇】通过Gson和FastJson格式化Json数据
- 【第7篇】通过json-lib去读取百度api地图的地方信息
- 【第16篇】通过fastjson去解析json数组数据
- gson JsonParser
- Gson JsonParser
- Gson去解析JSON数据
- 常用CSS属性
- 浏览器各种奇葩劫持,怎么破?
- android Gps 定位方法详解
- nginx fastcgi_params与fastcgi.conf
- Win8创建wifi热点
- 【第13篇】通过GSON的JsonParser去读取数据处理json数据
- Openfire服务器的安装部署详细步骤
- 中国信息安全发展是互联网发展重点
- IDEA 快捷键(MAC 版)说明
- c# 四舍五入、上取整、下取整
- C# 引用 VC 函数 平常积累
- C++第一遍泛读
- Android studio 安装过程提示找不到JDK
- 手游研发—纹理优化相关