fastjson 是一款 Java 序列化和反序列化 JSON 的開源工具庫,它提供了 JSON 與 Java 對象之間的轉換、JSON 字符串的解析和生成等功能,而其中 JSON 轉通用對象就是其中一項非常重要的功能。
在 fastjson 中,通過使用JSON.parseObject()
方法可以將 JSON 字符串轉換為一個通用對象。這個通用對象可以是一個 JavaBean、Map、List 等任意類型的 Java 對象,其轉換的方法實現大致如下:
// 將 JSON 轉換為 JavaBean 對象 TypeReference<User> typeRef = new TypeReference<User>() {}; User user = JSON.parseObject(json, typeRef); // 將 JSON 轉換為 Map 對象 TypeReference<Map<String, Object>> typeRef = new TypeReference<Map<String, Object>>() {}; Map<String, Object> map = JSON.parseObject(json, typeRef); // 將 JSON 轉換為 List 對象 TypeReference<List<User>> typeRef = new TypeReference<List<User>>() {}; List<User> userList = JSON.parseObject(json, typeRef);
可以看到,上述代碼中通過使用TypeReference
來指定轉換的目標類型。當然,如果只需要將 JSON 轉換為一個簡單的 Map 或者一個 JavaBean 對象,也可以直接調用JSON.parseObject()
方法:
// 將 JSON 轉換為 Map 對象 Map<String, Object> map = JSON.parseObject(json); // 將 JSON 轉換為 JavaBean 對象 User user = JSON.parseObject(json, User.class);
在進行 JSON 轉換時,我們還需要考慮到某些 JSON 字段可能為空,或者不存在的情況。針對這種情況,fastjson 提供了一些可選參數,例如JSON.parseObject(json, typeRef, Feature.IgnoreNotMatch)
可以忽略不存在的屬性,而JSON.parseObject(json, typeRef, Feature.InitStringFieldAsEmpty)
可以將不存在的屬性初始化為空字符串。
總之,通過 fastjson 實現 JSON 轉通用對象非常簡單,我們只需要根據自己的實際需求選擇不同的轉換方式和參數即可。
上一篇linux開發vue