java?hutool工具類處理JSON的使用方法
介紹
JSONUtil是針對JSONObject和JSONArray的靜態(tài)快捷方法集合,在之前的章節(jié)我們已經(jīng)介紹了一些工具方法,在本章節(jié)我們將做一些補充。
使用
1、JSON字符串創(chuàng)建
JSONUtil.toJsonStr可以將任意對象(Bean、Map、集合等)直接轉(zhuǎn)換為JSON字符串。 如果對象是有序的Map等對象,則轉(zhuǎn)換后的JSON字符串也是有序的。
/**
* 轉(zhuǎn)換為JSON字符串
* <p>
* 被轉(zhuǎn)為JSON的對象
*
* @return JSON字符串
*/
@Test
void toJsonStrTest() {
//map
SortedMap<Object, Object> sortedMap = new TreeMap<Object, Object>() {
private static final long serialVersionUID = 1L;
{
put("attributes", "a");
put("b", "b");
put("c", "c");
}
};
//對象
Student beanString = new Student(1, 1, 1, "張三");
//集合
List<Student> list = new ArrayList<>();
list.add(new Student(1, 1, 1, "張三"));
list.add(new Student(1, 1, 2, "李四"));
list.add(new Student(1, 1, 3, "王五"));
System.out.println("JSONUtil.toJsonStr(beanString) = " + JSONUtil.toJsonStr(beanString));
System.out.println("JSONUtil.toJsonStr(sortedMap) = " + JSONUtil.toJsonStr(sortedMap));
System.out.println("JSONUtil.toJsonStr(list) = " + JSONUtil.toJsonStr(list));
}
結(jié)果
JSONUtil.toJsonStr(beanString) = {"gradeId":0,"studentId":1,"termId":1,"classId":1,"name":"張三"}
JSONUtil.toJsonStr(sortedMap) = {"attributes":"a","b":"b","c":"c"}
JSONUtil.toJsonStr(list) = [{"gradeId":0,"studentId":1,"termId":1,"classId":1,"name":"張三"},
{"gradeId":0,"studentId":2,"termId":1,"classId":1,"name":"李四"},
{"gradeId":0,"studentId":3,"termId":1,"classId":1,"name":"王五"}]
如果我們想獲得格式化后的JSON,則:
JSONUtil.toJsonPrettyStr(object);
System.out.println("JSONUtil.toJsonPrettyStr(sortedMap) = "
+ JSONUtil.toJsonPrettyStr(sortedMap));
結(jié)果
JSONUtil.toJsonPrettyStr(sortedMap) = {
"attributes": "a",
"b": "b",
"c": "c"
}
2、JSON字符串解析
/**
* JSON字符串轉(zhuǎn)JSONObject對象
* <p>
* JSON字符串
*
* @return JSONObject
*/
@Test
void Test() {
String html = "{\"name\":\"Something must have been changed since you leave\"}";
JSONObject jsonObject = JSONUtil.parseObj(html);
System.out.println("jsonObject.getStr(\"name\") = " + jsonObject.getStr("name"));
}
結(jié)果
jsonObject.getStr("name") = Something must have been changed since you leave
3、XML字符串轉(zhuǎn)換為JSON
/**
* XML字符串轉(zhuǎn)為JSONObject
*
* XML字符串
* @return JSONObject
*/
@Test
void parseFromXmlTest() {
String s = "<sfzh>123</sfzh><sfz>456</sfz><name>aa</name><gender>1</gender>";
JSONObject json = JSONUtil.parseFromXml(s);
System.out.println("json.get(\"sfzh\") = " + json.get("sfzh"));
System.out.println("json.get(\"name\") = " + json.get("name"));
}
結(jié)果
json.get("sfzh") = 123
json.get("name") = aa
4、JSON轉(zhuǎn)換為XML
/**
* 轉(zhuǎn)換為XML字符串
*
* @param json JSON
* @return XML字符串
*/
@Test
void toXmlStrTest() {
final JSONObject put = JSONUtil.createObj()
.set("aaa", "你好")
.set("鍵2", "test");
// <aaa>你好</aaa><鍵2>test</鍵2>
final String s = JSONUtil.toXmlStr(put);
System.out.println("s = " + s);
}
結(jié)果
s = <aaa>你好</aaa><鍵2>test</鍵2>
5、 JSON轉(zhuǎn)Bean
我們先定義兩個較為復(fù)雜的Bean(包含泛型)
@Data
public class ADT {
private List<String> BookingCode;
}
@Data
public class Price {
private List<List<ADT>> ADT;
}
/**
* JSON字符串轉(zhuǎn)為實體類對象,轉(zhuǎn)換異常將被拋出
*
* @param <T> Bean類型
* @param jsonString JSON字符串
* @param beanClass 實體類對象
* @return 實體類對象
* @since 3.1.2
*/
@Test
void toBeanTest() {
String json = "{\"ADT\":[[{\"BookingCode\":[\"N\",\"N\"]}]]}";
Price price = JSONUtil.toBean(json, Price.class);
System.out.println("price = " + price);
}
以下是 Hutool 中關(guān)于 JSON 的常用方法:
JSON 字符串的解析與生成:
JSONUtil.parseObj(jsonStr):將 JSON 字符串解析為 JSONObject 對象。JSONUtil.parseArray(jsonStr):將 JSON 字符串解析為 JSONArray 數(shù)組對象。JSONUtil.toJsonStr(obj):將 Java 對象轉(zhuǎn)換為 JSON 字符串。
對象與 JSON 字符串的轉(zhuǎn)換:
JSONUtil.toBean(jsonStr, clazz):將 JSON 字符串轉(zhuǎn)換為指定類型的 Java 對象。JSONUtil.toMap(jsonStr):將 JSON 字符串轉(zhuǎn)換為 Map 對象。JSONUtil.toCamelCaseMap(bean):將 Java 對象轉(zhuǎn)換為駝峰風(fēng)格的 Map 對象,適用于大部分 JavaBean。
JSON 對象的操作:
JSONObject.get(key):獲取 JSON 對象中指定 key 的值。JSONObject.put(key, value):向 JSON 對象中添加鍵值對。JSONObject.containsKey(key):判斷 JSON 對象中是否包含指定的 key。JSONObject.keySet():獲取 JSON 對象中所有鍵的集合。
JSON 數(shù)組的操作:
JSONArray.get(index):獲取 JSON 數(shù)組中指定索引的元素。JSONArray.add(value):向 JSON 數(shù)組中添加元素。JSONArray.size():獲取 JSON 數(shù)組的長度。JSONArray.iterator():獲取 JSON 數(shù)組的迭代器。
其他常用方法:
JSONUtil.parseFromXml(xmlStr):將 XML 字符串解析為 JSON 對象。JSONUtil.toXmlStr(jsonObject):將 JSON 對象轉(zhuǎn)換為 XML 字符串。
總結(jié)
到此這篇關(guān)于java hutool工具類處理JSON的使用方法的文章就介紹到這了,更多相關(guān)java hutool處理JSON內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Mapper.xml中查詢返回帶有List屬性的實體類結(jié)果問題
這篇文章主要介紹了Mapper.xml中查詢返回帶有List屬性的實體類結(jié)果問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
SpringBoot在一定時間內(nèi)限制接口請求次數(shù)的實現(xiàn)示例
在項目中,接口的暴露在外面,很多人就會惡意多次快速請求,本文主要介紹了SpringBoot在一定時間內(nèi)限制接口請求次數(shù)的實現(xiàn)示例,具有一定的參考價值,感興趣的可以了解一下2022-03-03
springboot如何重定向攜帶數(shù)據(jù) RedirectAttributes
這篇文章主要介紹了springboot如何重定向攜帶數(shù)據(jù) RedirectAttributes,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2021-09-09

