iT邦幫忙

2026 iThome 鐵人賽

DAY 13
0

今天的目的主要是讓 gemini 回傳的東西從 JSON 格式轉回文字。因為 Java 本身是用類別和物件在處理資料,無法直接理解 JSON,因此這時候就需要 Gson 來做翻譯。

Gson 是什麼?

Gson 是 Google 開發的一個 Java 函式庫,主要要用來進行 Java 與 JSON 資料之間的轉換。當我們收到一大串 JSON 字串時,可以利用 Gson 將它解析成 JsonObject、JsonArray 等結構。由於 JSON 本身具有一層包一層的階層關係,因此我們可以像拆禮物一樣,從最外層開始,一層層找到需要的資料。

常見的功能可以分成兩種:

  • 序列化:將 Java Object 轉換成 JSON。
  • 反序列化:將 JSON 資料解析成 Java 可以進一步處理的形式。

這次主要使用到的有:
JsonParser:解析 JSON 字串
JsonObject:處理 { } 的 JSON 物件
JsonArray:處理 [ ] 的 JSON 陣列

首先要確定層級定位,方便程式按照 JSON 的結構一層一層取得資料。
https://ithelp.ithome.com.tw/upload/images/20260926/20184235c1lJqWg59O.png
先取得 candidates,接著再取得第一筆資料中的 content,再從 content找到 parts:
最後才取得真正需要的 text 。特別要注意的是回傳值需要加入 extractTextFromResponse(),這樣可以避免最後還是回傳完整的response.body()。

今天遇到的問題

JSON 本身其實是一串文字,所以我一開始很直覺的想用 split() 直接切分,但後來了解到 JSON 本身有不同的物件、陣列和層級,如果直接把字串切開,很容易因為回答中包含特殊符號或換行而取得錯誤的內容。

最後成功跑出文字:
https://ithelp.ithome.com.tw/upload/images/20260926/20184235ACJtE9Koe9.png


上一篇
連上API後,怎麼讓 Gemini 開始分析?
下一篇
讓 Gemini 判斷該用哪個分析-認識Agent 與 Tool
系列文
30 天從資料處理、分析到生成式 AI 的整合應用與實作學習 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言