FastJson 使用与介绍

在这里介绍下fastJson 的使用,当然在实际开发当中我会结合Server定制的JsonString 进行相关解析工具类的使用(GSON、FastJson),这两种方式,个人还是比较青睐于Google 的gson 解析器!不过我们还是的需要了解和掌握相关的一些解析技术!

以下是FastJson的一些特性:

阿里巴巴的FastJson
Fastjson是一个Java语言编写的高性能的JSON处理器,由阿里巴巴公司开发。
1、无依赖,不需要例外额外的jar类库,能够直接跑在JDK上。
2、FastJson支持普通JDK类包括任意JavaBean Class、Collection、Map、Date。
3、FastJson快速FAST,比其他parse的和生成器,超过所有json库。

(二)、序列化操作方法

    /**把JSON文本parse为JavaBean*/
    1public static   T parseObject(String text, Class clazz); 

    /**JSON文本parse成JavaBean集合 */
    2public static  List parseArray(String text, Class clazz); 

    /**JavaBean序列化为JSON文本 */
    3public static  String toJSONString(Object object); 

    /**JSON文本parse为JSONObject或者JSONArray*/
    4public static  Object parse(String text); 

    /**JSON文本parse成JSONObject*/
    5public static  JSONObject parseObject(String text);

    /**JSON文本parse成JSONArray */
    6public static  JSONArray parseArray(String text); 

    /**JavaBean序列化为带格式的JSON文本*/
    7public static  String toJSONString(Object object, boolean prettyFormat); 

    /**JavaBean转换为JSONObject或者JSONArray*/
    8public static  Object toJSON(Object javaObject);

简单的示例如下:


public class MainActivity extends Activity implements OnClickListener {

    private Button bt_Start;
    String jsonStr = "{\"JACKIE_ZHANG\":\"张学友\",\"ANDY_LAU\":\"刘德华\",\"LIMING\":\"黎明\",\"Aaron_Kwok\":\"郭富城\"}";
    String jsonArrays = "[{\"JACKIE_ZHANG\":\"张学友\",\"Aaron_Kwok\":\"郭富城\"},{\"JACKIE_ZHANG\":\"张学友\",\"ANDY_LAU\":\"刘德华\"}]";

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();

    }

    private void initView() {
        bt_Start = (Button) findViewById(R.id.bt_Start);
        bt_Start.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        case R.id.bt_Start:
            // parserJavaBean();
            parserJsonArrays();
            break;

        default:
            break;
        }
    }

    private void parserJavaBean() {
        User user = FastJsonUtils.getJsonObject(jsonStr, User.class);
        Log.d("wangly", user.toString());
        String resultString = FastJsonUtils.getSerializeObject(User.class);
        Log.d("wangly", "Json 文本" + resultString);
    }

    public void parserJsonArrays() {
        List<User> users = FastJsonUtils.getJsonsArray(jsonArrays, User.class);
        for (int i = 0; i < users.size(); i++) {
            Log.d("wangly", users.get(i).toString());
        }
    }

}

JavaBean:


public class User {
     private String JACKIE_ZHANG;
     private String ANDY_LAU;
     private String LIMING;
     private String Aaron_Kwok;
    public String getJACKIE_ZHANG() {
        return JACKIE_ZHANG;
    }
    public void setJACKIE_ZHANG(String jACKIE_ZHANG) {
        JACKIE_ZHANG = jACKIE_ZHANG;
    }
    public String getANDY_LAU() {
        return ANDY_LAU;
    }
    public void setANDY_LAU(String aNDY_LAU) {
        ANDY_LAU = aNDY_LAU;
    }
    public String getLIMING() {
        return LIMING;
    }
    public void setLIMING(String lIMING) {
        LIMING = lIMING;
    }
    public String getAaron_Kwok() {
        return Aaron_Kwok;
    }
    public void setAaron_Kwok(String aaron_Kwok) {
        Aaron_Kwok = aaron_Kwok;
    }
    @Override
    public String toString() {
        return "User [JACKIE_ZHANG=" + JACKIE_ZHANG + ", ANDY_LAU=" + ANDY_LAU
                + ", LIMING=" + LIMING + ", Aaron_Kwok=" + Aaron_Kwok + "]";
    }
}

为了方便其他Demo、项目使用为此将FastJson 进行了封装:
FastJsonUtils.java

/**
 * fastJson 封装工具类
 * 
 * @author Administrator
 * @since 2016/4/25
 * @version 1.0
 */
public class FastJsonUtils {
    /**
     * 将JsonString 转换为 JavaBean
     * 
     * @param jsonString
     * @param cls
     * @return
     */
    public static <T> T getJsonObject(String jsonString, Class<T> cls) {
        T t = null;
        try {
            t = JSON.parseObject(jsonString, cls);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return t;
    }

    /**
     * 将JsonString 转换为 List<JavaBean>、List<String>
     * 
     * @param jsonString
     * @param cls
     * @return
     */
    public static <T> List<T> getJsonsArray(String jsonString, Class<T> cls) {
        List<T> list = new ArrayList<T>();
        try {
            list = JSON.parseArray(jsonString, cls);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

    /**
     * 将JsonString 转换为 List<JavaBean>、List<String>
     * 
     * @param jsonString
     * @return
     */
    @SuppressWarnings("unchecked")
    public static <T> List<T> getJsonArray(String jsonString) {
        List<T> list = new ArrayList<T>();
        try {
            list = (List<T>) JSON.parseArray(jsonString);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;

    }

    /**
     * 将JsonString 转换为 List<Map<String,Object>> 
     * @param jsonString
     * @return
     */
    public static List<Map<String, Object>> getJsonListMap(String jsonString) {
        List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
        try {

            list = JSON.parseObject(jsonString,
                    new TypeReference<List<Map<String, Object>>>() {
                    });
        } catch (Exception e) {
            e.printStackTrace();
        }
        return list;
    }

    /**
     * 将JavaBean 反序列化为 JsonString 文本
     * @param cls
     * @return
     */

    /**
     * 将JavaBean 反序列化为 JsonString 文本
     * @param cls
     * @return
     */
    public static String getSerializeObject(User user){
        String jsonString = "";
        try {
            jsonString = JSON.toJSONString(user);
        } catch (Exception e) {
            e.printStackTrace();
        }
        return jsonString;
    }

}

到此fastJson 使用介绍已经完毕!最终的效果打印如下:

这里写图片描述

转载请标明:http://blog.csdn.net/wlytctw/article/details/51243859

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值