android解析json
最近客户端需求变更,服务器发送json格式的数据解析,但是我在做javaEE的时候,发现json是可以直接得到List ,class对象这些的,而在本身的android里面,省略了这些,所以这些需要自己来写,个人觉得,如果封装一个工具类就好了,如果使用反射机制就可以封装出来一个,但是实体类的字段就必须是public的!
下面是这个工具类的代码:
package com.zhangkeinfo.json.util;
import java.lang.reflect.Field;
import java.lang.reflect.Type;
import java.util.ArrayList;
import java.util.List;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
import android.util.Log;
/**
* json util class ,use in for 易做图yzing json
* @author spring sky
* My name :石明政
* QQ : 840950105
* 2011-12-14 15:39:51
*
*/
public class JsonUtil {
private static final String TAG = "jsonUtil";
private JSONObject jsonObject;
private JsonUtil(String json)
{
Log.e(TAG, "json="+json);
jsonObject = getJsonObject(json);
if(jsonObject==null)
{
Log.e(TAG, "jsonobject is null");
}
}
public JsonUtil() {
super();
}
public static JsonUtil newJsonUtil(String json)
{
JsonUtil util = new JsonUtil(json);
return util;
}
/**
* get json object
* @param json json data
* @return JOSNObject
*/
public JSONObject getJsonObject(String json)
{
JSONObject jsonObject = null;
try {
jsonObject = new JSONObject(json);
} catch (JSONException e) {
Log.e(TAG, "create jsonobject exception");
e.printStackTrace();
}
return jsonObject;
}
/**
* get String data
* @param json json data
* @param key param
* @return String data
* @throws JSONException
*/
public String getString(String key) throws JSONException
{
if(jsonObject!= null)
{
return jsonObject.getString(key);
}else{
return null;
}
}
/**
* get String data
* @param json json data
* @param key param
* @return int data
* @throws JSONException
*/
public int getInt(String key) throws JSONException
{
if(jsonObject!= null)
{
return jsonObject.getInt(key);
}else{
return -1;
}
}
/**
* get Double data
* @param json json data
* @param key param
* @return double data
* @throws JSONException
*/
public double getDouble(String key) throws JSONException
{
if(jsonObject!= null)
{
return jsonObject.getDouble(key);
}else{
return -1;
}
}
/**
* This Method use in jsonObject get current class with object
* @param jsonObject
* @param c class
* @return object
* @throws Exception
*/
public Object getObject(Class<?> c) throws Exception
{
if(jsonObject!=null)
{
return getObject(c.getSimpleName().toLowerCase(),c);
}else{
return null;
}
}
/**
* This Method use in jsonObject get current class with object
* @param jsonObject
* @param key query key
* @param c class
&n
补充:移动开发 , Android ,