在Java中,可以使用Jackson
庫將JSONObject
轉換為HashMap
。下面是一個簡單的示例:
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.JsonNode;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
public class Main {
public static void main(String[] args) {
String json = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
ObjectMapper objectMapper = new ObjectMapper();
try {
// 將JSON字符串轉換為JsonNode對象
JsonNode jsonNode = objectMapper.readTree(json);
// 將JsonNode轉換為HashMap
HashMap<String, Object> hashMap = convertJsonNodeToHashMap(jsonNode);
// 打印HashMap
for (Map.Entry<String, Object> entry : hashMap.entrySet()) {
System.out.println(entry.getKey() + ": " + entry.getValue());
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static HashMap<String, Object> convertJsonNodeToHashMap(JsonNode jsonNode) {
HashMap<String, Object> hashMap = new HashMap<>();
Iterator<Map.Entry<String, JsonNode>> iterator = jsonNode.fields();
while (iterator.hasNext()) {
Map.Entry<String, JsonNode> entry = iterator.next();
String key = entry.getKey();
JsonNode value = entry.getValue();
// 處理嵌套的JsonNode
if (value.isObject()) {
hashMap.put(key, convertJsonNodeToHashMap(value));
} else {
hashMap.put(key, value.asText());
}
}
return hashMap;
}
}
上述代碼使用Jackson
庫中的ObjectMapper
類將JSON字符串轉換為JsonNode
對象。然后,使用遞歸方法convertJsonNodeToHashMap
將JsonNode
對象轉換為HashMap
對象。該方法遍歷JsonNode
的字段,并根據字段類型處理對應的值。
注意:在使用上述代碼之前,需要先引入Jackson
庫的依賴。