關於雲端JSON 資料的解析
阿新 • • 發佈:2019-01-02
關於雲端返回的JSON資料,如何直接轉換為定義的類,最好還是使用fastjson,感覺很不錯的一個庫。
fastjson下載https://github.com/alibaba/fastjson
部分內容轉載自http://blog.csdn.net/zeuskingzb/article/details/17468079
Fastjson介紹 Fastjson是一個Java語言編寫的JSON處理器。 1、遵循http://json.org標準,為其官方網站收錄的參考實現之一。 2、功能qiang打,支援JDK的各種型別,包括基本的JavaBean、Collection、Map、Date、Enum、泛型。 3、無依賴,不需要例外額外的jar,能夠直接跑在JDK上。 4、開源,使用Apache License 2.0協議開源。http://code.alibabatech.com/wiki/display/FastJSON/Home 如果獲得Fastjson? SVN:http://code.alibabatech.com/svn/fastjson/trunk/ WIKI:http://code.alibabatech.com/wiki/display/FastJSON/Home Issue Tracking:http://code.alibabatech.com/jira/browse/FASTJSON 如果你使用了Maven,maven repository配置如下: <repository> <id>opensesame</id> <name>Alibaba OpenSource Repsoitory</name> <url>http://code.alibabatech.com/mvn/releases/</url> <snapshots> <enabled>false</enabled> </snapshots> </repository> pom.xml檔案中加入依賴依賴: <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.0.4</version> </dependency> 如果沒有使用maven,可以直接下載: http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.0.4/fastjson-1.0.4.jar http://code.alibabatech.com/mvn/releases/com/alibaba/fastjson/1.0.4/fastjson-1.0.4-sources.jar 使用介紹: Fastjson的最主要的使用入口是com.alibaba.fastjson.JSON import com.alibaba.fastjson.JSON; public static final Object parse(String text); // 把JSON文字parse為JSONObject或者JSONArray public static final JSONObject parseObject(String text); // 把JSON文字parse成JSONObject public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文字parse為JavaBean public static final JSONArray parseArray(String text); // 把JSON文字parse成JSONArray public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文字parse成JavaBean集合 public static final String toJSONString(Object object); // 將JavaBean序列化為JSON文字 public static final String toJSONString(Object object, boolean prettyFormat); // 將JavaBean序列化為帶格式的JSON文字 public static final Object toJSON(Object javaObject); 將JavaBean轉換為JSONObject或者JSONArray。 程式碼示例: 程式碼示例用到類User和Group: public class User { private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } public class Group { private Long id; private String name; private List<User> users = new ArrayList<User>(); public Long getId() { return id; } public void setId(Long id) { this.id = id; } 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; } } Encode程式碼示例: import com.alibaba.fastjson.JSON; Group group = new Group(); group.setId(0L); group.setName("admin"); User guestUser = new User(); guestUser.setId(2L); guestUser.setName("guest"); User rootUser = new User(); rootUser.setId(3L); rootUser.setName("root"); group.getUsers().add(guestUser); group.getUsers().add(rootUser); String jsonString = JSON.toJSONString(group); System.out.println(jsonString); Decode 程式碼示例: Group group2 = JSON.parseObject(jsonString, Group.class);