该系列文章主要是对 hutool 工具类的介绍,详情可以参考
hutool-json的核心类只有两个:
- JSONObject
- JSONArray 这与其它JSON包是类似的,与此同时,还提供一个JSONUtil工具类用于简化针对JSON的各种操作和转换。
除了核心类,还提供了一些辅助类用于实现特定功能:
- JSONSupport Bean类继承此对象即可无缝转换为JSON或JSON字符串。同时实现了toString()方法可将当前对象输出为JSON字符串。
- XML 提供JSON与XML之间的快速转换,同时JSONUtil中有相应静态封装。
- JSON JSONObject和JSONArray共同实现的接口类,JSONUtil.parse方法默认返回此对象(因为不知道是JSON对象还是JSON数组),然后可以根据实际类型判断后转换对象类型。
@Test
public void testBean2Str() {
User user = new User();
user.setId("1");
user.setName("name1");
String str = JSONUtil.toJsonStr(user);
Console.log(str);
}
@Test
public void testBean2PrettyStr() {
User user = new User();
user.setId("1");
user.setName("name1");
String str = JSONUtil.toJsonPrettyStr(user);
Console.log(str);
}
@Test
public void testStr2Bean() {
String str = "{\"id\":\"1\",\"name\":\"name1\"}";
User user = JSONUtil.toBean(str, User.class);
Console.log(user);
}
@Test
public void testStr2ComplexBean() {
String str = "{\"name\":\"name1\",\"t\":{\"id\":\"1\",\"name\":\"name1\"}}";
// 支持泛型
ComplexBean<User> bean = JSONUtil.toBean(str, new TypeReference<ComplexBean<User>>() {
}, false);
Console.log(bean);
}
@Test
public void testJSON2Bean() {
JSONObject jsonObject = JSONUtil.createObj()
.set("id", "1")
.set("name", "name");
User user = JSONUtil.toBean(jsonObject, User.class);
Console.log(user);
}
@Test
public void testBean2JSON() {
User user = new User();
user.setId("1");
user.setName("name1");
JSONObject jsonObject = JSONUtil.parseObj(user);
Console.log(jsonObject);
}
@Test
public void testStr2JSON() {
String str = "{\"a\":\"a\",\"b\":\"b\",\"c\":\"c\"}";
JSONObject jsonObject = JSONUtil.parseObj(str);
Console.log(jsonObject);
}
@Test
public void testJSON2Str() {
JSONObject jsonObject = JSONUtil.createObj()
.set("aaa", "你好")
.set("键2", "test");
String str = JSONUtil.toJsonStr(jsonObject);
Console.log(str);
}
@Test
public void testXML2JSON() {
String str = "<sfzh>123</sfzh><name>aa</name><gender>1</gender>";
JSONObject jsonObject = JSONUtil.parseFromXml(str);
Console.log(jsonObject);
}
@Test
public void testJSON2XML() {
JSONObject jsonObject = JSONUtil.createObj()
.set("aaa", "你好")
.set("键2", "test");
String str = JSONUtil.toXmlStr(jsonObject);
Console.log(str);
}
@Test
public void testJSONRead() {
JSONArray jsonArray = JSONUtil.readJSONArray(FileUtil.file("json/test.json"), CharsetUtil.CHARSET_UTF_8);
List<User> users = JSONUtil.toList(jsonArray, User.class);
Console.log(users);
}