Scala 中处理json
1. Lift-json
2. Gson
3. Json4s
4. spray-jso
但是发现Fastjson不能再用了,存在安全漏洞。fastjson采用黑白名单的方法来防御反序列化漏洞,导致当黑客不断发掘新的反序列化Gadgets类时,在autoType关闭的情况下仍然可能可以绕过黑白名单防御机制,造成远程命令执行漏洞。经研究,该漏洞利用门槛较低,可绕过autoType限制,风险影响较大。阿里云应急响应中心提醒fastjson用户尽快采取安全措施阻止漏洞攻击。
影响版本
- fastjson <=1.2.68
- fastjson sec版本 <= sec9
- android版本不受此漏洞影响
升级方案
升级到最新版本1.2.69或者更新的1.2.70版本。
- 1.2.69 https://github.com/alibaba/fastjson/releases/tag/1.2.69
- 1.2.70 https://github.com/alibaba/fastjson/releases/tag/1.2.70
但是还是决定改用Gson,确实在Scala的实现方面,比fastjson好用多了,以下是Gson
maven 依赖
Maven依赖:
<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.alibaba/fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.51</version>
</dependency>
</dependencies>
fastJson
import com.alibaba.fastjson._
import scala.collection.JavaConversions._
object TestFastJson {
def main (args: Array[String]): Unit ={
println("fastJson tests....")
var badJsonStr="{\"employees\":\"{\