首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

Android解析JSON形式(二) 客户端解析SON数据

2013-03-04 
Android解析JSON方式(二) 客户端解析SON数据在上一篇中搭建了服务器端的程序,这篇我们来建立一个Android项

Android解析JSON方式(二) 客户端解析SON数据

在上一篇中搭建了服务器端的程序,这篇我们来建立一个Android项目,来访问服务器取得JSON格式数据,并解析JSON数据格式,输出到日志控制台。

我们建立的项目目录结构如下:

Android解析JSON形式(二) 客户端解析SON数据


运行的界面截图:

Android解析JSON形式(二) 客户端解析SON数据


当我们分别点击四个按钮,可以看到控制台的输出日志:

Android解析JSON形式(二) 客户端解析SON数据


以下是源代码:

main.xml

package com.json.util;import java.util.ArrayList;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import org.json.JSONArray;import org.json.JSONException;import org.json.JSONObject;import com.json.bean.Person;/** * 完成对JSON数据的解析 * @author wulianghuan * */public class JsonTools {public JsonTools() {}/** * 获取对象数据 * @param key * @param jsonString * @return */public static Person getPerson(String key,String jsonString){Person person = new Person();try {JSONObject jsonObject = new JSONObject(jsonString);JSONObject personObject = jsonObject.getJSONObject(key);person.setId(personObject.getInt("id"));person.setName(personObject.getString("name"));person.setAddress(personObject.getString("address"));} catch (JSONException e) {e.printStackTrace();}return person;}/** * 获取对象数组数据 * @param key * @param jsonString * @return */public static List<Person> getPersons(String key,String jsonString){List<Person> list = new ArrayList<Person>();try {JSONObject jsonObject = new JSONObject(jsonString);//返回json的数组JSONArray jsonArray = jsonObject.getJSONArray(key);for(int i=0;i<jsonArray.length();i++){JSONObject jsonObject2 = jsonArray.getJSONObject(i);Person person = new Person();person.setId(jsonObject2.getInt("id"));person.setName(jsonObject2.getString("name"));person.setAddress(jsonObject2.getString("address"));list.add(person);}} catch (JSONException e) {e.printStackTrace();}return list;}/** * 获取String数组数据 * @param key * @param jsonString * @return */public static List<String> getList(String key,String jsonString){List<String> list = new ArrayList<String>();try {JSONObject jsonObject = new JSONObject(jsonString);JSONArray jsonArray = jsonObject.getJSONArray(key);for(int i=0;i<jsonArray.length();i++){String msg = jsonArray.getString(i);list.add(msg);}} catch (JSONException e) {e.printStackTrace();}return list;}/** * 获取对象的Map集合数据 * @param key * @param jsonString * @return */public static List<Map<String,Object>> getListMap(String key,String jsonString){List<Map<String,Object>> list = new ArrayList<Map<String,Object>>();try {JSONObject jsonObject = new JSONObject(jsonString);JSONArray jsonArray = jsonObject.getJSONArray(key);for(int i=0;i<jsonArray.length();i++){JSONObject jsonObject2 = jsonArray.getJSONObject(i);Map<String,Object> map = new HashMap<String, Object>();Iterator<String> iterator = jsonObject2.keys();while(iterator.hasNext()){String json_key = iterator.next();Object json_value = jsonObject2.get(json_key);if(json_value==null){json_value = "";}map.put(json_key, json_value);}list.add(map);}} catch (JSONException e) {// TODO Auto-generated catch blocke.printStackTrace();}return list;}}

热点排行