scala使用Gson和FastJson解析JSON

简介: kafka传过来的数据好多都是JSON格式,需要对其解析,抽取出应用需要的数据。Gson和FastJson是两个不错的解析工具,以后可能经常会使用到,记录一下,防止以后遗忘。

Maven依赖:

<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>

fastjson:

import com.alibaba.fastjson._
import scala.collection.JavaConversions._
object TestFastJson {
def main (args: Array[String]): Unit ={

println("fastJson tests....")
var badJsonStr="{\"employees\":\"{\"firstName\":\"三\",\"lastName\":\"张\"}\"}"
try{
  var badJsonObject=JSON.parseObject(badJsonStr)
}
catch{
  //json格式不正确,报错
  case e:Exception=>println(e.getMessage)
}
/*测试JsonObject*/
var jsonObjectStr="{\"firstName\":\"三\" , \"lastName\":\"张\"}"
var jsonObject:JSONObject=JSON.parseObject(jsonObjectStr)
println("firstName="+jsonObject.getString("firstName")+",lastName="+jsonObject.getString("lastName"))
/*测试JsonArray*/
var jsonArrayStr="[{\"firstName\":\"三\",\"lastName\":\"张\"},{\"firstName\":\"四\",\"lastName\":\"李\"}]"
//生成JsonArray对象
var jsonArray:JSONArray=JSON.parseArray(jsonArrayStr)
//遍历JsonArray
jsonArray.foreach(ja=>{
  //scala不能推断出ja是JsonObject,只能手动转成JsonObject
 var json=JSON.parseObject(ja.toString)
  //输出
  println("firstName="+json.getString("firstName")+",lastName="+json.getString("lastName"))
})

}
}

--gson

import com.google.gson._
import scala.collection.JavaConversions._
/**

  • Created by Administrator on 2018/10/21.

*/
object TestGson {
def main(args: Array[String]) {

println("gson tests....")
var badJsonStr="{\"employees\":\"{\"firstName\":\"三\",\"lastName\":\"张\"}\"}"
try{
  var badJsonObject=new JsonParser().parse(badJsonStr).getAsJsonObject
}
catch{
  //json格式不正确,报错
  case e:Exception=>println(e.getMessage)
}
/*测试JsonObject*/
var jsonObjectStr="{\"firstName\":\"三\" , \"lastName\":\"张\"}"
var jsonObject=new JsonParser().parse(jsonObjectStr).getAsJsonObject
println("firstName="+jsonObject.get("firstName").getAsString+",lastName="+jsonObject.get("lastName").getAsString)
/*测试JsonArray*/
var jsonArrayStr="[{\"firstName\":\"三\",\"lastName\":\"张\"},{\"firstName\":\"四\",\"lastName\":\"李\"}]"
//生成JsonArray对象
var jsonArray=new JsonParser().parse(jsonArrayStr).getAsJsonArray
//遍历JsonArray
jsonArray.foreach(ja=>{
  //scala可以识别ja是JsonObject,可以直接进行解析          println("firstName="+jsonObject.get("firstName").getAsString+",lastName="+jsonObject.get("lastName").getAsString)
})

}
}

目录
相关文章
|
2月前
|
JSON 缓存 自然语言处理
多语言实时数据微店商品详情API:技术实现与JSON数据解析指南
通过以上技术实现与解析指南,开发者可高效构建支持多语言的实时商品详情系统,满足全球化电商场景需求。
|
4月前
|
存储 JSON 关系型数据库
【干货满满】解密 API 数据解析:从 JSON 到数据库存储的完整流程
本文详解电商API开发中JSON数据解析与数据库存储的全流程,涵盖数据提取、清洗、转换及优化策略,结合Python实战代码与主流数据库方案,助开发者构建高效、可靠的数据处理管道。
|
3月前
|
JSON 算法 API
淘宝商品评论API接口核心解析,json数据返回
淘宝商品评论API是淘宝开放平台提供的数据服务接口,允许开发者通过编程方式获取指定商品的用户评价数据,包括文字、图片、视频评论及评分等。其核心价值在于:
|
1月前
|
JSON Java Go
【GoGin】(2)数据解析和绑定:结构体分析,包括JSON解析、form解析、URL解析,区分绑定的Bind方法
bind或bindXXX函数(后文中我们统一都叫bind函数)的作用就是将,以方便后续业务逻辑的处理。
263 3
|
1月前
|
XML JSON 数据处理
超越JSON:Python结构化数据处理模块全解析
本文深入解析Python中12个核心数据处理模块,涵盖csv、pandas、pickle、shelve、struct、configparser、xml、numpy、array、sqlite3和msgpack,覆盖表格处理、序列化、配置管理、科学计算等六大场景,结合真实案例与决策树,助你高效应对各类数据挑战。(238字)
163 0
|
5月前
|
JSON 定位技术 PHP
PHP技巧:解析JSON及提取数据
这就是在PHP世界里探索JSON数据的艺术。这场狩猎不仅仅是为了获得数据,而是一种透彻理解数据结构的行动,让数据在你的编码海洋中畅游。通过这次冒险,你已经掌握了打开数据宝箱的钥匙。紧握它,让你在编程世界中随心所欲地航行。
213 67
|
2月前
|
JSON 自然语言处理 API
多语言实时数据淘宝商品评论API:技术实现与JSON数据解析指南
淘宝商品评论多语言实时采集需结合官方API与后处理技术实现。建议优先通过地域站点适配获取本地化评论,辅以机器翻译完成多语言转换。在合规前提下,企业可构建多语言评论数据库,支撑全球化市场分析与产品优化。
|
分布式计算 大数据 Java
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
大数据-87 Spark 集群 案例学习 Spark Scala 案例 手写计算圆周率、计算共同好友
188 5
|
分布式计算 关系型数据库 MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
大数据-88 Spark 集群 案例学习 Spark Scala 案例 SuperWordCount 计算结果数据写入MySQL
145 3
|
消息中间件 分布式计算 NoSQL
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
大数据-104 Spark Streaming Kafka Offset Scala实现Redis管理Offset并更新
236 0

热门文章

最新文章

推荐镜像

更多
  • DNS
  • 下一篇
    oss云网关配置