吾勇士

Json数据解析之FastJson解析

之前写了关于org.json 以及gson解析 json格式数据的相关博文,今天再补充一下使用阿里巴巴工程师类库fastjson解析json数据,fastjson和谷歌的gson很像,但是比谷歌的gson做的优化更好,因为至少我在测试的时候并没有出现谷歌gson包的Java泛型擦除的问题,

即 com.google.gson.JsonSyntaxException:

 java.lang.IllegalStateException: 

Expected Person but was BEGIN_OBJECT  等类似的问题

和之前一样,仍然将fastjson解析常用的四种格式的方法写成了一个工具类,直接上工具类源码:

package com.zml.utils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.google.gson.Gson;
import com.zml.pojo.Person;

/**

  • @author 郑明亮

  • @Time:2016年7月18日 上午9:53:16

  • @version 1.0
    */
    public class FastJsonTools {

    public FastJsonTools() {
    throw new UnsupportedOperationException("不能被实例化");
    }

    /**TODO 转换成json格式的字符串

    • @param object 要转换的对象
    • @return
      */
      public static String createJsonString(Object object) {
      String jsonString = JSON.toJSONString(object);
      return jsonString;
      }

    /**将json字符串转换为指定的bean对象

    • @param jsonString
    • @param cls 要转换为对象的类型
    • @return
      */
      public static <T> T createJsonBean(String jsonString, Class<T> cls) {
      T t = JSON.parseObject(jsonString, cls);
      return t;
      }

    /**将json字符串转换为List<T>

    • @param jsonString
    • @param cls
    • @return
      */
      public static <T> List<T> createJsonToListBean(String jsonString,
      Class<T> cls) {
      List<T> list = null;
      list = JSON.parseArray(jsonString, cls);
      return list;
      }

    /**将json字符串转换为List<Map<String,Object>>

    • @param jsonString
    • @return
      */
      public static List<Map<String, Object>> createJsonToListMap(
      String jsonString) {
      List<Map<String, Object>> list2 = JSON.parseObject(jsonString,
      new TypeReference<List<Map<String, Object>>>() {
      });
      return list2;
      }

    /**将json字符串转换为List<String>

    • @param jsonString
    • @return
      */
      public static List<String> createJsonToListString(String jsonString) {
      List<String> list2 = JSON.parseObject(jsonString,
      new TypeReference<List<String>>() {
      });
      return list2;
      }

}

Json_Gson_FastJson解析服务器端源码 下载

 

 

FastJson解析Android客户端源码下载

 

关于Gson解析的博文   请点这里

 

关于org.json解析的博文  请点这里