Skip to content

JSON工具类

com.fengwenyi.javalib.convert.JsonUtils

JSON 在我们接口开发中,用得非常多,首先要保证的就是正确。
所以,底层使用 jackson 进行 JSON 转换操作。

对象转JSON

java
User user = new User();
user.setName("张三");
user.setAge(16)
String result = JsonUtils.string(user);
System.out.println(result);

TIP

使用此方法,我们可以将对象数组集合转换成JSON字符串。

JSON转对象

java
String jsonStr = "{\"name\":\"张三\",\"age\":16}";
String result = JsonUtils.object(jsonStr, User.class);
System.out.println(result);

JSON转多层级对象

待转换的JSON字符串如下:

json
{
    "code":"success",
    "message":"Success",
    "data":{
        "name":"张三",
        "age":16
    }
}

ResultTemplate如下:

java
public class ResultTemplate<T> {
    String code;
    String message;
    T data;
}

User类如下:

java
public class User {
    String name;
    int age;
}

我们就可以这样进行转换:

java
String jsonStr = "{\"code\":\"success\",\"message\":\"Success\",\"data\":{\"name\":\"张三\",\"age\":16}}";
ResultTemplate<User> result = JsonUtils.object(
    jsonStr,
    new TypeReference(ResultTemplate<User>(){})
);

JSON转集合

java
String jsonStr = "[{\"name\":\"张三\",\"age\":16}]";
List<User> result = JsonUtils.collection(jsonStr, List.class, User.class);

JSON转集合, TypeReference

java
String jsonStr = "[{\"name\":\"张三\",\"age\":16}]";
List<User> result = JsonUtils.collection(
    jsonStr,
    new TypeReference(List<User>(){})
);

JSON转换成Map

java
String jsonStr = "{\"name\":\"张三\"}";
Map<String, String> result = JsonUtils.map(jsonStr, String.class, String.class);

TIP

第二个参数是Map的key的类型。
第三个参数是Map的value的类型。

获取JSON的key列表

java
String json = "{\"name\":\"张三\"}";
List<String> result = JsonUtils.getKeys(json);

TIP

只返回第一层的key

Released under the MIT License.