- 1.使用GSON解析序列化的,用Map映射
- //map数据
- String jsonStr="{'1': {'id': '1','code': 'bj','name': '北京','map': '39.90403, 116.40752599999996'},'2': {'id': '2','code': 'sz','name': '深圳','map': '22.543099, 114.05786799999998'},'9': {'id': '9','code': 'sh','name': '上海','map': '31.230393,121.473704'},'10': {'id': '10','code': 'gz','name': '广州','map': '23.129163,113.26443500000005'}}";
- Map<String, City> citys = gson.fromJson(jsonStr, new TypeToken<Map<String, City>>() {}.getType());
- System.out.println(citys.get("1").name+"----------"+citys.get("2").code);
- 2.GSON解析时间类型 见http://blog.csdn.net/tianyaxingge/article/details/6680007
- GsonBuilder gsonb = new GsonBuilder();
- //Json中的日期表达方式没有办法直接转换成我们的Date类型, 因此需要单独注册一个Date的反序列化类.
- //DateDeserializer ds = new DateDeserializer();
- //给GsonBuilder方法单独指定Date类型的反序列化方法
- //gsonb.registerTypeAdapter(Date.class, ds);
- Gson gson = gsonb.create();
- Account account = gson.fromJson(jobj.toString(), Account.class);
- 3.使用JSONObject的遍历
-
public String getJson(){ String jsonString = "{\"FLAG\":\"flag\",\"MESSAGE\":\"SUCCESS\",\"name\":[{\"name\":\"jack \"},{\"name\":\"lucy\"}]}";//json字符串 try { JSONObject result = new JSONObject(jsonstring);//转换为JSONObject int num = result.length(); JSONArray nameList = result.getJSONArray("name");//获取JSONArray int length = nameList.length(); String aa = ""; for(int i = 0; i < length; i++){//遍历JSONArray Log.d("debugTest",Integer.toString(i)); JSONObject oj = nameList.getJSONObject(i); aa = aa + oj.getString("name")+"|"; } Iterator<?> it = result.keys(); String aa2 = ""; String bb2 = null; while(it.hasNext()){//遍历JSONObject bb2 = (String) it.next().toString(); aa2 = aa2 + result.getString(bb2); } return aa; } catch (JSONException e) { throw new RuntimeException(e); } }
4.Gson其它用法 http://www.jb51.net/article/32547.htm