`

Json,Gson,FastJson解析笔记

    博客分类:
  • J2SE
阅读更多
Json
1.将JavaBean转换成Json对象:
public static String CreatJsonFromObject(Object key,Object value)
	{
		JSONObject JObj =new JSONObject();
		JObj.put(key, value);
		return JObj.toString();
	}

2.解析Json:
  public static  Person parseJsonPerson(String key,String jsonStr)
    {
        System.out.print(key+"-->"+jsonStr);
        Person person =new Person();
        JSONObject jobj;
        try
        {
            jobj = new JSONObject(jsonStr);
            JSONObject personObj =jobj.getJSONObject(key);
            person.setAge(personObj.getInt("age"));
            person.setName(personObj.getString("name"));
            person.setSex(personObj.getString("sex"));
        }
        catch (JSONException e)
        {
            e.printStackTrace();
        }
        return person;
       
    }
    
    public static List<Person> parseJsonListPerson(String key,String jsonStr)
    {
        System.out.print(key+"-->"+jsonStr);
        List<Person> list=new ArrayList<Person>();
        try
        {
            JSONObject jobj;
            jobj = new JSONObject(jsonStr);
            JSONArray personArr =jobj.getJSONArray(key);
            for(int i=0;i<personArr.length();i++)
            {
                JSONObject personObj = personArr.getJSONObject(i);
                Person person =new Person();
                person.setAge(personObj.getInt("age"));
                person.setName(personObj.getString("name"));
                person.setSex(personObj.getString("sex"));
                list.add(person);
            }
        }
        catch (JSONException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    
    public static List<String> parseJsonListString(String key,String jsonStr)
    {
        System.out.print(key+"-->"+jsonStr);
        List<String> list =new ArrayList<String>();
        try
        {
            JSONObject jobj;
            jobj = new JSONObject(jsonStr);
            JSONArray personArr =jobj.getJSONArray(key);
            for(int i=0;i<personArr.length();i++)
            {
                String personObj = personArr.getString(i);
                list.add(personObj);
            }
        }
        catch (JSONException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return list;
    }
    
    public static List<Map<String, Object>> parseJsonListMap(String key,String jsonStr)
    {
        System.out.print(key+"-->"+jsonStr);
        List<Map<String, Object>> list =new ArrayList<Map<String,Object>>();
        try
        {
            JSONObject jobj;
            jobj = new JSONObject(jsonStr);
            JSONArray personArr =jobj.getJSONArray(key);
            for(int i=0;i<personArr.length();i++)
            {
                JSONObject personObj = personArr.getJSONObject(i);
                Iterator<String> set =personObj.keys();
                while(set.hasNext())
                {
                    String tempKey =set.next();
                    Object tempValue =personObj.get(tempKey);
                    HashMap<String,Object> map =new HashMap<String,Object>();
                    //注意tempValue可能为空
                    if(tempValue == null)
                    {
                        tempValue="";
                    }
                    map.put(tempKey, tempValue);
                    list.add(map);
                }
            }
            
        }
        catch (JSONException e)
        {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        
        
        return list;
    }


Gson:
1.将JavaBean转换成Gson String
	public static String CreatJsonFromObject(Object value)
	{
		Gson gson =new Gson();
		return gson.toJson(value);
		
	}

2.解析Gson String
 public static <T> T getPerson(String Json, Class<T> cls)
    {
        Gson gson = new Gson();
        T t = gson.fromJson(Json, cls);
        return t;
    }
    
   public static <T> List<T> getPersons(String Json, Class<T> Type)
    {
        List<T> list = new Gson().fromJson(Json, new TypeToken<List<T>>()
        {
        }.getType());
        return list;
    }
    
   public  static List<String> getString(String Json)
    {
        List<String> retStr = new Gson().fromJson(Json, new TypeToken<List<String>>()
        {
        }.getType());
        return retStr;
    }
    
   public   static List<Map<String, Object>> getListMap(String Json)
    {
        List<Map<String, Object>> retStr = new Gson().fromJson(Json, new TypeToken<List<Map<String, Object>>>()
        {
        }.getType());
        return retStr;
    }

FastJson:
1.将JavaBean转换成FastJson String
服务端利用上述方式实现
2.解析FastJson String
 public static <T> T getPerson(String jsonStr, Class<T> cls)
    {
        T t = JSON.parseObject(jsonStr, cls);
        return t;
    }
    
    public static <T> List<T> getPersons(String jsonStr, Class<T> cls)
    {
        List<T> list = JSON.parseArray(jsonStr, cls);
        return list;
    }
    
    /**
     * @param jsonStr
     * @return
     */
    public static List<Map<String, Object>> getListMap(String jsonStr)
    {
        List<Map<String, Object>> list = JSON.parseObject(jsonStr, new TypeReference<List<Map<String, Object>>>()
        {
        });
        return list;
    }
分享到:
评论

相关推荐

    fastjson使用笔记

    1. 高性能:Fastjson的性能在同类JSON库中名列前茅,其解析和生成速度均优于Gson、Jackson等其他库。 2. 简单API:通过简单的函数调用即可完成JSON与Java对象的转换,降低了学习成本。 3. 动态类型:Fastjson支持...

    JSon的完整jar包

    在Java中,为了处理JSON数据,通常会使用第三方库,这个“JSon的完整jar包”很可能包含了几个常用的JSON库,如Gson、Jackson、org.json或Fastjson等。这些库提供了将Java对象转换为JSON字符串以及将JSON字符串反序列...

    Android随手笔记44之JSON数据解析

    在Android客户端,解析JSON数据通常使用`org.json`库(已包含在Android SDK中)或者第三方库如Gson、Jackson、FastJson等。以下是一个使用`org.json`库解析JSON对象的例子: ```java import org.json.JSONArray; ...

    SpringBoot学习笔记完整教程

    3. **使用其他 JSON 转换框架**:除了默认的 Jackson,Spring Boot 还支持其他 JSON 库,如 Gson 或者 Fastjson。了解如何配置这些库,并在项目中替换默认的 JSON 序列化与反序列化机制。 4. **全局异常捕捉**:...

    Android开发教程笔记完全版

    6. **网络编程**:包括HTTP请求(如使用HttpURLConnection、OkHttp、Volley等库)、WebSocket、JSON解析(Gson、Jackson、FastJson等)以及异步处理(AsyncTask、Handler、Retrofit等)。 7. **权限管理**:Android...

    android学习笔记

    4. **网络编程**:HTTP请求库的使用(如OkHttp、Volley)、JSON解析(Gson、Jackson、Fastjson)、WebSocket通信。 5. **多线程与异步处理**:AsyncTask、Handler、Looper、线程池(ExecutorService)以及现代...

    Spring Boot 学习笔记完整教程.docx

    - **Gson** 和 **FastJson**:除了默认的 Jackson,还可以集成其他 JSON 库进行序列化和反序列化。 5. **全局异常捕捉** - **统一异常处理**:利用 `@ControllerAdvice` 和 `@ExceptionHandler` 注解实现全局异常...

    Spring Boot 学习笔记完整教程.pdf

    - **使用其他 JSON 转换框架**:虽然 Spring Boot 默认使用 Jackson 进行 JSON 数据转换,但开发者可以引入其他转换框架如 Gson 或 Fastjson 来替代。 - **全局异常捕捉**:Spring Boot 提供了对全局异常处理的支持...

    豆瓣客户端代码

    5. JSON解析:将从豆瓣服务器获取的JSON数据转换为Java对象,可能用到Gson、Jackson或FastJson等库。 6. **数据存储**:了解SharedPreferences、SQLite数据库或Room库在Android中的应用,用于存储用户的偏好设置或...

Global site tag (gtag.js) - Google Analytics