scala使用Gson和FastJson解析JSON

本文涉及的产品
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
简介: 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月前
|
SQL 存储 JSON
SQL,解析 json
SQL,解析 json
75 8
|
2月前
|
JSON JavaScript Java
在Java中处理JSON数据:Jackson与Gson库比较
本文介绍了JSON数据交换格式及其在Java中的应用,重点探讨了两个强大的JSON处理库——Jackson和Gson。文章详细讲解了Jackson库的核心功能,包括数据绑定、流式API和树模型,并通过示例演示了如何使用Jackson进行JSON解析和生成。最后,作者分享了一些实用的代码片段和使用技巧,帮助读者更好地理解和应用这些工具。
152 0
在Java中处理JSON数据:Jackson与Gson库比较
|
4月前
|
存储 JSON API
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
——在成长的路上,我们都是同行者。这篇关于商品详情API接口的文章,希望能帮助到您。期待与您继续分享更多API接口的知识,请记得关注Anzexi58哦! 淘宝API接口(如淘宝开放平台提供的API)允许开发者获取淘宝商品的各种信息,包括商品详情。然而,需要注意的是,直接访问淘宝的商品数据API通常需要商家身份或开发者权限,并且需要遵循淘宝的API使用协议。
淘系API接口(解析返回的json数据)商品详情数据解析助力开发者
|
3月前
|
JSON API 数据格式
requests库中json参数与data参数使用方法的深入解析
选择 `data`或 `json`取决于你的具体需求,以及服务器端期望接收的数据格式。
280 2
|
3月前
|
JSON 前端开发 JavaScript
解析JSON文件
解析JSON文件
140 9
|
2月前
|
SQL 分布式计算 Java
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
大数据-96 Spark 集群 SparkSQL Scala编写SQL操作SparkSQL的数据源:JSON、CSV、JDBC、Hive
53 0
|
2月前
|
JSON JavaScript API
商品详情数据接口解析返回的JSON数据(API接口整套流程)
商品详情数据接口解析返回的JSON数据是API接口使用中的一个重要环节,它涉及从发送请求到接收并处理响应的整个流程。以下是一个完整的API接口使用流程,包括如何解析返回的JSON数据:
|
3月前
|
存储 JSON API
Python编程:解析HTTP请求返回的JSON数据
使用Python处理HTTP请求和解析JSON数据既直接又高效。`requests`库的简洁性和强大功能使得发送请求、接收和解析响应变得异常简单。以上步骤和示例提供了一个基础的框架,可以根据你的具体需求进行调整和扩展。通过合适的异常处理,你的代码将更加健壮和可靠,为用户提供更加流畅的体验。
199 0
|
2月前
|
数据采集 JSON 数据处理
抓取和分析JSON数据:使用Python构建数据处理管道
在大数据时代,电商网站如亚马逊、京东等成为数据采集的重要来源。本文介绍如何使用Python结合代理IP、多线程等技术,高效、隐秘地抓取并处理电商网站的JSON数据。通过爬虫代理服务,模拟真实用户行为,提升抓取效率和稳定性。示例代码展示了如何抓取亚马逊商品信息并进行解析。
抓取和分析JSON数据:使用Python构建数据处理管道
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。

推荐镜像

更多