一、Java字符串轉JSON
1、使用JSONObject進行轉換
在Java中,我們可以使用JSONObject將字符串轉換為JSON對象。下面是文本字符串轉換為JSON對象的示例代碼:
String jsonString = "{\"name\":\"Alice\",\"age\":25}"; JSONObject json = new JSONObject(jsonString);
使用上述代碼,我們可以將jsonString轉換為一個JSON對象json。這個JSON對象包含兩個屬性:name和age,對應的值是”Alice”和25。
2、使用Gson進行轉換
Gson是一個開源庫,可以幫助Java程序將Java對象與JSON數據相互轉換。下面是使用Gson將Java字符串轉換為JSON對象的示例代碼:
String jsonString = "{\"name\":\"Bob\",\"age\":30}"; Gson gson = new Gson(); JsonElement element = gson.fromJson(jsonString, JsonElement.class); JsonObject json = element.getAsJsonObject();
上述代碼中,我們首先使用Gson對象將jsonString轉換為一個JsonElement對象。然後,我們將JsonElement對象轉換為一個JsonObject對象,該對象包含兩個屬性:name和age,對應的值是”Bob”和30。
二、JSON轉字符串
1、使用JSONObject進行轉換
使用JSONObject將一個JSON對象轉換為字符串也非常簡單。下面是示例代碼:
JSONObject json = new JSONObject(); json.put("name", "Charlie"); json.put("age", 35); String jsonString = json.toString();
上述代碼中,我們首先創建了一個JSON對象json,設置了兩個屬性:name和age。然後,我們使用json對象的toString方法,將json對象轉換為一個字符串。
2、使用Gson進行轉換
和將字符串轉換為JSON對象一樣,使用Gson將JSON對象轉換為字符串也非常簡單。下面是示例代碼:
JsonObject json = new JsonObject(); json.addProperty("name", "David"); json.addProperty("age", 40); Gson gson = new Gson(); String jsonString = gson.toJson(json);
上述代碼中,我們首先創建了一個JsonObject對象json,設置了兩個屬性:name和age。然後,我們使用Gson對象gson的toJson方法,將json對象轉換為一個字符串。
三、JSON格式化輸出
1、使用JSONObject進行格式化輸出
使用JSONObject進行格式化輸出也非常簡單。下面是示例代碼:
JSONObject json = new JSONObject(); json.put("name", "Eric"); json.put("age", 45); String jsonString = json.toString(4);
上述代碼中,我們將JSONObject的toString方法的參數設置為4,表示將輸出的字符串按照4個空格縮進。這樣,輸出的字符串看起來更加工整。
2、使用Gson進行格式化輸出
和使用JSONObject一樣,使用Gson進行格式化輸出也非常簡單。下面是示例代碼:
JsonObject json = new JsonObject(); json.addProperty("name", "Frank"); json.addProperty("age", 50); Gson gson = new GsonBuilder().setPrettyPrinting().create(); String jsonString = gson.toJson(json);
上述代碼中,我們使用GsonBuilder創建一個Gson對象gson,並設置其prettyPrinting屬性為true,表示將輸出的字符串進行格式化縮進。
四、JSON字符串轉義問題
1、使用org.apache.commons.text.StringEscapeUtils進行轉義
在Java中,有些字符在字符串中需要進行轉義,否則會引起語法錯誤。在JSON字符串中,雙引號、單引號、反斜杠等字符需要進行轉義。這時,我們可以使用org.apache.commons.text.StringEscapeUtils類中的escapeJson方法進行轉義。下面是示例代碼:
String jsonString = "{\"name\":\"George\",\"desc\":\"He said, \\\"I am fine.\\\"\"}"; String escapedString = StringEscapeUtils.escapeJson(jsonString);
上述代碼中,我們將一個包含轉義字符的JSON字符串jsonString作為輸入,調用escapeJson方法進行轉義,得到輸出字符串escapedString。
2、使用org.json庫進行轉義
除了使用org.apache.commons.text.StringEscapeUtils類,我們還可以使用org.json庫中的JSONObject.quote方法進行轉義。下面是示例代碼:
String jsonString = "{\"name\":\"Henry\",\"desc\":\"He said, \\\"I am ok.\\\"\"}"; String escapedString = JSONObject.quote(jsonString);
上述代碼中,我們將一個包含轉義字符的JSON字符串jsonString作為輸入,調用JSONObject.quote方法進行轉義,得到輸出字符串escapedString。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/247451.html