当前位置:编程学习 > JS >>

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 analyzing 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 ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,