Scala解析JSON

Scala解析JSON,第1张

package com.mlamp.test_json

/**

* @Author: DaChun777

* @Date: 2021/12/8  上午10:35

* @Description:

*/

import scala.util.parsing.json._

import com.google.gson.{JsonElement, JsonObject, JsonParser}

object read_json {

def main(args: Array[String]):Unit = {

gson("{host:td_test,ts:1486979192345,device:{tid:a123456,os:android,sdk:1.0.3},time:1501469230058}")

}

def gson(str:String) = {

val json =new JsonParser()

val obj: JsonObject = json.parse(str).asInstanceOf[JsonObject]

val element: JsonElement = obj.get("device")

val element1: JsonElement = element.getAsJsonObject.get("tid")

//s上面的element1得到的带双引号,需要去掉

    val str1:String = element1.toString.replace("\"", "")

println(element)

println(element1)

println(str1)

println(obj.get("ts"))

}

}

1. Lift-json

2. Gson

3. Json4s

4. spray-json

scala处理json可以调用JAVA常用json处理库来处理json

这里展示使用fastjson 和json-lib来处理

众所周知,kafka中存储的数据是经过BASE64加密后的jsonObject,因此从kafka中读取的数据经过base64解码,得到的是json串,利用JSONObect的方法可以对json串进行解析,拿到对应的数据。那么要如何将scala对象或者java对象转换为JsonObject对象或JSONObject对象呢?(注意:JsonObject对象和JSONObject对象不同,调用的API也不一样)

三种转换方式依赖的包源码都是用JAVA编写,所以构建Map对象时完全使用java对象,不会发生错误。构建过程如下:

三种将java对象转换为jsonObject对象的开源包有:

1、google提供的Genson是一个完全的Java和JSON转换的类库,提供了全面的数据绑定、流 *** 作等。基于Apache 2.0协议发布。转换结果为

JsonObject对象。

使用需要先导入Jar包:import com.google.gson.{Gson, JsonParser}

引入依赖:这里选用版本为:2.2.4,具体版本可以根据业务需求选择。

<dependency>

<groupId>com.google.code.gson</groupId>

<artifactId>gson</artifactId>

<version>2.2.4</version>

</dependency>

2、Fastjson 是一个 Java 库,可以将 Java 对象转换为 JSON 格式,当然它也可以将 JSON 字符串转换为 Java 对象。

导入jar包:import com.alibaba.fastjson.JSON

引入依赖:

<dependency>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

<version>1.2.8</version>

</dependency>

3、net.sf.json-lib方式

导入jar包:import net.sf.json.JSONObject

引入依赖:

<dependency>

<groupId>net.sf.json-lib</groupId>

<artifactId>json-lib-ext-spring</artifactId>

<version>1.0.2</version>

</dependency>


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/tougao/11727008.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-18
下一篇2023-05-18

发表评论

登录后才能评论

评论列表(0条)

    保存