fastjason常用方法

背景

fastjson爆出重大漏洞,攻击者可使整个业务瘫痪

漏洞描述

常用JSON组件FastJson存在远程代码执行漏洞,攻击者可通过精心构建的json报文对目标服务器执行任意命令,从而获得服务器权限。此次爆发的漏洞为以往漏洞中autoType的绕过。

影响范围

FastJson < 1.2.48

最近关于fastjson的消息,引起了很多人的关注!很多开发者才猛然发现,fastjson已经深入到我们开发工作的方方面面。那么除了赶快升级你的json外,我们来挖挖fastjson最常用的用法。

fastjson常用方式

1.maven依赖(记得升级到1.2.48以上版本哦)

        <!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
        <dependency>
         <groupId>com.alibaba</groupId>
         <artifactId>fastjson</artifactId>
         <version>1.2.62</version>
        </dependency>    

2.FastJson对于json格式字符串的解析主要用到了一下三个类:

(1)JSON:fastJson的解析器,用于JSON格式字符串与JSON对象及javaBean之间的转换。

(2)JSONObject:fastJson提供的json对象。

(3)JSONArray:fastJson提供json数组对象。

3.常用方式

3.1 string和java对象

fastjason常用方法

实例1:对象转json字符串

        Map<String,String> map=new HashMap<String,String>();
        map.put("code","0");
        map.put("message","ok");
        String json=JSON.toJSONString(map);
        System.out.println(json);

输出结果为:

{"code":"0","message":"ok"}

实例2:字符串转对象

        Map<String,String> map=new HashMap<String,String>();
        map.put("code","0");
        map.put("message","ok");
        String json=JSON.toJSONString(map);
        System.out.println(json);
        
        Map obj=(Map)JSON.parse(json);
        System.out.println("code="+obj.get("code")+",message="+obj.get("message"));

输出结果

{"code":"0","message":"ok"}
code=0,message=ok

3.2 工具类JSONObject

    public static void main(String[] args) {
        Map<String,String> map=new HashMap<String,String>();
        map.put("code","0");
        map.put("message","ok");
        String json=JSON.toJSONString(map);
        System.out.println(json);
        
        Map obj=(Map)JSON.parse(json);
        System.out.println("code="+obj.get("code")+",message="+obj.get("message"));        
        
        String code=JSON.parseObject(json).getString("code");
        String message=JSON.parseObject(json).getString("message");
        System.out.println("code="+code+",message="+message);
    }

输出结果

{"code":"0","message":"ok"}
code=0,message=ok
code=0,message=ok

3.3 数组对象

List<user> list=new ArrayList<user>(JSONArray.parseArray(jsonString,user.class));

原文 

http://www.cnblogs.com/davidwang456/p/11910021.html

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » fastjason常用方法

赞 (0)
分享到:更多 ()

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址