Manual tutorial FastJson
/ Fastjson 對象或數(shù)組轉(zhuǎn)JSON
Fastjson 對象或數(shù)組轉(zhuǎn)JSON
Fastjson阿里巴巴工程師開源的一個(gè) json 庫:Fastjson,這個(gè)庫在解析速度和易用性上來說都很不錯(cuò)。
在日志解析,前后端數(shù)據(jù)傳輸交互中,經(jīng)常會遇到 String 與 map、json、xml 等格式相互轉(zhuǎn)換與解析的場景,其中 json 基本成為了跨語言、跨前后端的事實(shí)上的標(biāo)準(zhǔn)數(shù)據(jù)交互格式。應(yīng)該來說各個(gè)語言中 解析 json 的庫都一大片(具體 json 格式與三方庫的介紹請見: http://www.json.org/json-zh.html ),比如 python 都集成在了內(nèi)置庫中,成為標(biāo)準(zhǔn) API,今天我們要聊的是 java 中如何方便的使用 json 格式。
下面一個(gè)示例是如何使用Fastjson 把對象或數(shù)組轉(zhuǎn)JSON
package test; import java.util.ArrayList; import java.util.List; import com.alibaba.fastjson.JSON; class User { private String name; private int age; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public String toString() { return "User [name=" + name + ", age=" + age + "]"; } }; class UserGroup { private String name; private List<User> users = new ArrayList<User>(); public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getUsers() { return users; } public void setUsers(List<User> users) { this.users = users; } @Override public String toString() { return "UserGroup [name=" + name + ", users=" + users + "]"; } } class FastJsonTest { public static void main(String[] args) { // 構(gòu)建用戶geust User guestUser = new User(); guestUser.setName("guest"); guestUser.setAge(28); // 構(gòu)建用戶root User rootUser = new User(); rootUser.setName("root"); guestUser.setAge(35); // 構(gòu)建用戶組對象 UserGroup group = new UserGroup(); group.setName("admin"); group.getUsers().add(guestUser); group.getUsers().add(rootUser); // 用戶組對象轉(zhuǎn)JSON串 String jsonString = JSON.toJSONString(group); System.out.println("jsonString:" + jsonString); // JSON串轉(zhuǎn)用戶組對象 UserGroup group2 = JSON.parseObject(jsonString, UserGroup.class); System.out.println("group2:" + group2); // 構(gòu)建用戶對象數(shù)組 User[] users = new User[2]; users[0] = guestUser; users[1] = rootUser; // 用戶對象數(shù)組轉(zhuǎn)JSON串 String jsonString2 = JSON.toJSONString(users); System.out.println("jsonString2:" + jsonString2); // JSON串轉(zhuǎn)用戶對象列表 List<User> users2 = JSON.parseArray(jsonString2, User.class); System.out.println("users2:" + users2); } }輸出結(jié)果:
jsonString:{"name":"admin","users":[{"age":35,"name":"guest"},{"age":0,"name":"root"}]} group2:UserGroup [name=admin, users=[User [name=guest, age=35], User [name=root, age=0]]] jsonString2:[{"age":35,"name":"guest"},{"age":0,"name":"root"}] users2:[User [name=guest, age=35], User [name=root, age=0]]fastjson通過各方面測試都很好,功能性能都是No.1,喜歡,它的源代碼質(zhì)量很高,作者也煞費(fèi)苦心,將性能做到了最好,全免超越其他的json類庫。
通過fastjson我們可以快速進(jìn)行開發(fā)。