在Java編程中,經常需要將JSON字符串快速轉換為Map對象,以方便操作和處理。下面將從多個方面進行闡述。
一、JSON轉換成字符串
轉換JSON字符串到Java對象有很多種方法,其中最常用的是使用第三方JSON庫,如Gson。以下是將JSON字符串轉換為Map對象的具體步驟:
//導入Gson庫
import com.google.gson.Gson;
//定義JSON字符串
String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
//將JSON字符串轉換為Map對象
Gson gson = new Gson();
Map map = gson.fromJson(jsonString, Map.class);
//遍歷Map對象
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
以上代碼使用Gson庫將JSON字符串轉換為Map對象,並遍歷Map對象輸出鍵值對。輸出結果如下:
name = John age = 30.0 city = New York
二、JSON字符串轉換成Map
Gson庫也可以將JSON字符串直接轉換為Map對象,而不需要先轉換為Java對象。以下是具體步驟:
//定義JSON字符串
String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
//將JSON字符串轉換為Map對象
java.lang.reflect.Type mapType = new TypeToken<Map>() {}.getType();
Map map = gson.fromJson(jsonString, mapType);
//遍歷Map對象
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
以上代碼將JSON字符串直接轉換為Map對象,並遍歷輸出鍵值對。輸出結果和上一個例子相同。
三、將XML格式字符串轉換成JSON
有時需要將XML格式字符串轉換為JSON格式字符串,以便於處理和操作。以下是如何使用第三方庫將XML格式字符串轉換為JSON格式字符串的示例:
//導入XML和JSON庫
import org.json.JSONException;
import org.json.JSONObject;
import org.xml.sax.InputSource;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.transform.TransformerException;
import javax.xml.transform.TransformerFactory;
import javax.xml.transform.dom.DOMSource;
import javax.xml.transform.stream.StreamResult;
import java.io.StringReader;
import java.io.StringWriter;
import java.util.HashMap;
import java.util.Map;
//定義XML格式字符串
String xmlString = "John30New York";
//將XML轉換為JSON
JSONObject jsonObject = null;
try {
org.w3c.dom.Document doc = convertStringToXMLDocument(xmlString);
jsonObject = new JSONObject(convertDocumentToJSON(doc));
} catch (JSONException | TransformerException e) {
e.printStackTrace();
}
//將JSON轉換為Map對象
Map map = new HashMap();
for (String key : jsonObject.keySet()) {
map.put(key, jsonObject.get(key));
}
//遍歷Map對象
for (Map.Entry entry : map.entrySet()) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
//將XML格式字符串轉換為XML Document對象
public static org.w3c.dom.Document convertStringToXMLDocument(String xmlString) {
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
DocumentBuilder builder;
try {
builder = factory.newDocumentBuilder();
org.w3c.dom.Document doc = builder.parse(new InputSource(new StringReader(xmlString)));
return doc;
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
//將XML Document對象轉換為JSON格式字符串
public static String convertDocumentToJSON(org.w3c.dom.Document doc) throws TransformerException, JSONException {
TransformerFactory tf = TransformerFactory.newInstance();
StringWriter writer = new StringWriter();
Transformer transformer = tf.newTransformer();
transformer.transform(new DOMSource(doc), new StreamResult(writer));
String xmlString = writer.getBuffer().toString().replaceAll("\n|\r", "");
JSONObject json = XML.toJSONObject(xmlString);
return json.toString();
}
以上代碼將XML格式字符串轉換為JSON格式字符串,並將JSON格式字符串轉換為Map對象。輸出結果如下:
name = John age = 30 city = New York
四、將JSON字符串轉換成對象
使用Gson庫將JSON字符串轉換為對象的方法和前面的例子類似。以下是具體步驟:
//定義JSON字符串
String jsonString = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
//將JSON字符串轉換為Person對象
Person person = gson.fromJson(jsonString, Person.class);
//輸出Person對象屬性
System.out.println(person.getName());
System.out.println(person.getAge());
System.out.println(person.getCity());
以上代碼使用Gson庫將JSON字符串轉換為Person對象,並輸出Person對象屬性。輸出結果為:
John 30 New York
五、將JSON字符串轉換為數組
有時需要將JSON字符串轉換為數組對象,以方便操作和處理。以下是如何使用Gson庫將JSON字符串轉換為數組對象的示例:
//定義JSON數組字符串
String jsonArrayString = "[{\"name\":\"John\",\"age\":30},{\"name\":\"Jane\",\"age\":25}]";
//將JSON數組字符串轉換為Person對象數組
Person[] persons = gson.fromJson(jsonArrayString, Person[].class);
//遍歷Person對象數組
for (Person person : persons) {
System.out.println(person.getName() + ", " + person.getAge());
}
以上代碼將JSON數組字符串轉換為Person對象數組,並遍歷Person對象數組輸出屬性。輸出結果為:
John, 30 Jane, 25
六、對象轉換為JSON字符串
使用Gson庫將Java對象轉換為JSON字符串也很簡單。以下是具體步驟:
//定義Person對象
Person person = new Person("John", 30, "New York");
//將Person對象轉換為JSON字符串
String jsonString = gson.toJson(person);
//輸出JSON字符串
System.out.println(jsonString);
以上代碼將Person對象轉換為JSON字符串,並輸出JSON字符串。輸出結果為:
{"name":"John","age":30,"city":"New York"}
總結
本文從多個方面對如何快速將JSON字符串轉換為Map進行了闡述。通過示例代碼和具體步驟,讀者可以更好地理解和掌握相關知識。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/200683.html
微信掃一掃
支付寶掃一掃