眾所周知,kafka中存儲的數(shù)據(jù)是經(jīng)過BASE64加密后的jsonObject,因此從kafka中讀取的數(shù)據(jù)經(jīng)過base64解碼,得到的是json串,利用JSONObect的方法可以對json串進行解析,拿到對應(yīng)的數(shù)據(jù)。那么要如何將scala對象或者java對象轉(zhuǎn)換為JsonObject對象或JSONObject對象呢?(注意:JsonObject對象和JSONObject對象不同,調(diào)用的API也不一樣)
三種轉(zhuǎn)換方式依賴的包源碼都是用JAVA編寫,所以構(gòu)建Map對象時完全使用java對象,不會發(fā)生錯誤。構(gòu)建過程如下:


三種將java對象轉(zhuǎn)換為jsonObject對象的開源包有:
1、google提供的Genson是一個完全的Java和JSON轉(zhuǎn)換的類庫,提供了全面的數(shù)據(jù)綁定、流操作等?;贏pache 2.0協(xié)議發(fā)布。轉(zhuǎn)換結(jié)果為
JsonObject對象。
使用需要先導入Jar包:import com.google.gson.{Gson, JsonParser}
引入依賴:這里選用版本為:2.2.4,具體版本可以根據(jù)業(yè)務(wù)需求選擇。
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
</dependency>

2、Fastjson 是一個 Java 庫,可以將 Java 對象轉(zhuǎn)換為 JSON 格式,當然它也可以將 JSON 字符串轉(zhuǎn)換為 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>
