美文网首页
alibaba-fastjson用法示例

alibaba-fastjson用法示例

作者: haiyong6 | 来源:发表于2020-06-22 10:51 被阅读0次

用了那么久的fastjson,只用到了里面的一部分方法,以前习惯上是用flexjson序列化,fastjson反序列化,其实fastjson本身具有的方法已经涵盖到大部分情况,下面总结一下常用的方法。

public static void main(String[] args) {
        //对象序列化为String json
        Map<String, Object> resultMap = new HashMap<String, Object>();
        resultMap.put("code", "0");
        resultMap.put("msg", "成功");
        
        List<String> resultList = new ArrayList<String>();
        resultList.add("1");
        resultList.add("sjkldsf");
        resultMap.put("data", resultList);
        
        String json = JSON.toJSONString(resultMap);
        System.out.println(json);//输出结果为{"msg":"成功","code":"0","data":["1","sjkldsf"]}
        
        //String json反序列化为对象
        Map<String, Object> resultMap1 = JSON.parseObject(json);
        System.out.println(resultMap1.get("msg"));//输出结果为 成功
        List<String> resultList1 = (List<String>)resultMap1.get("data");
        System.out.println(resultList1.get(1));//输出结果为 sjkldsf
        
        //String json反序列化为JSONObject
        JSONObject resultObj = JSONObject.parseObject(json);
        System.out.println(resultObj.getString("msg"));//输出结果为 成功
        JSONArray dataArr = resultObj.getJSONArray("data");
        System.out.println(dataArr.get(1));//输出结果为 sjkldsf

        //对象直接转化为JSONObject或JSONArray
        JSONObject resultMapObj = (JSONObject)JSON.toJSON(resultMap);
        System.out.println(resultMapObj.getString("msg"));//输出结果为 成功
        JSONArray dataArr1 = resultMapObj.getJSONArray("data");
        System.out.println(dataArr1.get(1));//输出结果为 sjkldsf
    }

注意:上面String json反序列化为对象的例子中,fastjson只能反序列化为原来的对象类型,比如里面的data只能反序列化为List<String>格式而不能反序列化为String[]格式。
JSONObject和JSONArray就无所谓什么类型,都能把string格式的json反序列化为这两个对象,所以通常这个用的比较多。
对象也可以通过JSON.toJSON(obj)这个方法把对象直接转化为JSONObject或JSONArray.

相关文章

网友评论

      本文标题:alibaba-fastjson用法示例

      本文链接:https://www.haomeiwen.com/subject/zsqxfktx.html