如何在 Java 中把 Hashmap 轉換為 JSON 物件
-
new JSONObject(hashmap)
將 Hashmap 轉換為 JSON 物件 -
Jackson
庫將 Hashmap 轉換為 JSON 物件 -
GSON
庫將 Hashmap 轉換為 JSON 物件
本文介紹了在 Java 中把 Hashmap 轉換為 JSON 物件的方法。我們將看到關於建立一個 hashmap,然後將其轉換為 JSON 物件的詳細例子。
Hashmap 和 JSON 都是開發人員非常常用的,因為它們幫助我們建立了一個簡單的結構,可以輕鬆地用於儲存以及傳輸資料。
new JSONObject(hashmap)
將 Hashmap 轉換為 JSON 物件
將雜湊圖轉換為 JSON 物件的最傳統方法是呼叫 JSONObject()
,然後傳遞雜湊圖。
讓我們看一個建立雜湊圖,然後以 JSON 格式列印的示例。
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONObject;
public class Main {
public static void main(String[] args) {
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
JSONObject json = new JSONObject(map);
System.out.printf("JSON: %s", json);
}
輸出:
JSON: {"key1":"value1","key2":"value2"}
需要注意的是,Map<String, Object>
需要一個字串,即 key
,和一個物件 Object
,即 value
。這意味著我們可以將任何有效的物件作為值傳入 Map,然後將其轉換為 JSON 物件。
下面是一個例子,它把一個字串和一個 Arraylist
作為值。
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import org.json.simple.JSONObject;
public class Main {
public static void main(String[] args) {
ArrayList<String> stringArrayList = new ArrayList<>();
stringArrayList.add("firstString");
stringArrayList.add("secondString");
stringArrayList.add("thirdString");
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
map.put("stringList", stringArrayList);
JSONObject json = new JSONObject(map);
System.out.printf("JSON: %s", json);
}
輸出:
JSON: {"key1":"value1","key2":"value2","stringList":["firstString","secondString","thirdString"]}
Jackson
庫將 Hashmap 轉換為 JSON 物件
在 Java 中,有一些庫可以幫助我們將 Hashmap 轉換為 JSON 物件,而且非常靈活。
Jackson 是這些庫中的一個,它接收一個 Java map
,然後將其轉換成 JSON 格式。
我們不要忘記處理 JsonProcessingException
,因為 ObjectMapper().writeValueAsString(map)
發現不相容的資料格式時,會丟擲異常。
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) throws JsonProcessingException {
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
String json = new ObjectMapper().writeValueAsString(map);
System.out.printf("JSON: %s", json);
}
輸出:
JSON: {"key1":"value1","key2":"value2"}
GSON
庫將 Hashmap 轉換為 JSON 物件
Gson
庫是最常用的將 hashmap 轉換為 JSON 物件的庫之一。它提供了簡單的方法來處理我們的 hashmap 和 JSON。
Gson
類有一個方法 toJsonTree
它接收我們的 Map 並將其轉換為 JSON 樹。但由於我們需要一個 JSON 物件,我們可以使用 toJSONObject()
來使 JSON 樹成為一個 JSON 物件。
import com.google.gson.Gson;
import com.google.gson.JsonObject;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, Object> map = new HashMap();
map.put("key1", "value1");
map.put("key2", "value2");
Gson gson = new Gson();
JsonObject json = gson.toJsonTree(map).getAsJsonObject();
System.out.printf("JSON: %s", json);
}
輸出:
JSON: {"key1":"value1","key2":"value2"}
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn相關文章 - Java JSON
- 在 Java 中處理 JSON 陣列
- 在 Java 中將 XML 轉換為 JSON
- 在 Java 中將 JSON 轉換為 XML
- 將 JSON 轉換為 Java 物件
- 在 Java 中解析 JSON
- 在 Java 中讀取 JSON 檔案