FASTJSON常用方法

这里主要列出fastjson的实用方法,便于以后自己或其他朋友参考

一、解析json字符串并获取数据

1.把json字符串转换为实体类

    1.1、直接解析为对象(支持深度解析)
    T t = JSON.parseObject(jsonstr, T.class);         // 解析{...}为对象
    List<t> list = JSON.parseArray(jsonstr, T.class); // 解析[{},{}...]为集合
    
    1.2、解析为JSON对象
        1.2.1、如果不知道json字符串具体是JSONObject还是JSONArray可以使用
            Object obj = JSON.parse(jsonstr); // obj可能为String、JSONArray、JSONObject

        1.2.2、如果确定字符串为JSONObject类型
            JSONObject parseObject = JSON.parseObject(jsonstr);

        1.2.3、如果确定字符串为JSONArray类型
            JSONArray jsonarry = JSON.parseArray(jsonstr);

2.获取JSONArray对象中的数据
    2.1、获取JSONArray中的单个元素作为JSONObject
        JSONObject jsonobject = JSONArray.get(i);

    2.2、获取JSONArray中的单个元素作为解析后的实体类(直接封装为实体类)
        T t = JSONArray.getObject(i, T.class);
    
    2.3、遍历JSONArray
        JSONArray jsonarray = JSON.parseArray(jsonstr);
        for(int i=0;i<jsonarray.size();i++){
            JSONObject jsonobject = JSONArray.get(i);
            T t = JSONArray.getObject(i, T.class);
        }

3.获取JSONObject对象中的数据
    3.1、获取JSONObject中的数据
        Byte byte1 = parseObject.getByte(key);
        byte byteValue = parseObject.getByteValue(key);

        Short short1 = parseObject.getShort(key);
        short shortValue = parseObject.getShortValue(key);

        Integer integer = parseObject.getInteger(key);
        int intValue = parseObject.getIntValue(key);

        Long long1 = parseObject.getLong(key);
        long longValue = parseObject.getLongValue(key);

        Float float1 = parseObject.getFloat(key);
        float floatValue = parseObject.getFloatValue(key);

        Double double1 = parseObject.getDouble(key);
        double doubleValue = parseObject.getDoubleValue(key);

        // 以下四个最常用..
        String string = parseObject.getString(key);

        JSONArray jsonArray = parseObject.getJSONArray(key);
        JSONObject jsonObject = parseObject.getJSONObject(key);

        Object object = parseObject.get(key); // object类型为JSONArray或JSONObject或String
    
    3.2、遍历JSONObject
        Set<String> keySet = JSONObject.keySet();
        for(String key : keySet){
            Object value = keySet.get(key); // value类型为JSONArray或JSONObject或String
        }

二、格式化对象为json字符串

1.默认对象转为json字符串的方法
    JSON.toJSONString(Object);

2.上诉方法可以把对象转为JSON格式的字符串,但是存在部分缺陷.推荐使用以下转换方式

    SerializerFeature quotefieldnames = SerializerFeature.QuoteFieldNames;               // 输出的结果不带双引号
    SerializerFeature writemapnullvalue = SerializerFeature.WriteMapNullValue;           // 打印出null值得字段
    SerializerFeature writenullstringasempty = SerializerFeature.WriteNullStringAsEmpty; // null值字段显示为""
    SerializerFeature writenulllistasempty = SerializerFeature.WriteNullListAsEmpty;     // null值数组显示为[]

    JSON.toJSONString(obj, quotefieldnames, writemapnullvalue, writenullstringasempty, writenulllistasempty);

3.SerializerFeature详细说明见下图(图片来自网络,非原创)


4.应用:当我们需要编写一个返回结果为json格式字符串的接口时。我们在最外层的返回类型中可以使用JSONObject代替String
    
    理由:我们返回json数据的时候如果使用String,返回结果可能是这样:"{\"resultcode\" : \"success\", \"resultdesc\" : \"成功\" }"
          但是如果使用JSONObject,返回结果就会是这样:{"resultcode" : "success", "resultdesc" : "成功" }

    小小的细节,有时候你可能真的需要

三、jar包与实例(java项目体现)

fastjson.zip中包含了fastjson-1.2.2.jar以及JSONUtil.java类,类中提供了json字符串转为对象的方法以及对象转为json字符串的方法。方法可能比较简单但可以让我们更方便的了解并使用fastjson(密码:98qa)

https://pan.baidu.com/s/1VORT5UE2SstCarGVquflKw

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值