alibaba架包FastJson使用例子

  alibaba的架包FastJson可以对json字符串进行快捷的类型转换。下面是一些各种类型转换的使用例子。

一、下载FastJson的架包,并导入项目中,如下:

Maven项目pom.xml配置如下:

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.32</version>
</dependency>

二、附上代码例子,如下:

1、创建2个实体类,供后面例子使用,如下:

 1 public class School {
 2     private String id;
 3     private String name;
 4     List<User> students = new ArrayList<User>();
 5     public String getId() {
 6         return id;
 7     }
 8     public void setId(String id) {
 9         this.id = id;
10     }
11     public String getName() {
12         return name;
13     }
14     public void setName(String name) {
15         this.name = name;
16     }
17     public List<User> getStudents() {
18         return students;
19     }
20     public void setStudents(List<User> students) {
21         this.students = students;
22     }
23 }
 1 public class User {
 2     private String id;
 3     private String name;
 4     
 5     public User(){
 6         
 7     }
 8     public User(String id, String name){
 9         this.id = id;
10         this.name = name;
11     }
12     
13     public String getId() {
14         return id;
15     }
16     public void setId(String id) {
17         this.id = id;
18     }
19     public String getName() {
20         return name;
21     }
22     public void setName(String name) {
23         this.name = name;
24     }
25 }

2、Json字符串与Map、List、object之间的相互转换例子,如下:

  1 import java.util.ArrayList;
  2 import java.util.HashMap;
  3 import java.util.List;
  4 import java.util.Map;
  5 
  6 import com.alibaba.fastjson.JSON;
  7 import com.alibaba.fastjson.JSONArray;
  8 import com.alibaba.fastjson.JSONObject;
  9 
 10 public class TestFastJson {
 11 
 12     public static void main(String[] args){
 13         json2JsonObject();//将Json字符串转换为JSONObject对象
 14         json2JavaBean();//将Json字符串转换为JavaBean对象
 15         json2JsonArray();//将Json字符串转换为JSONArray对象
 16         json2JavaBeanList();//将Json字符串转换为JavaBean的集合
 17         javaBean2Json();//将JavaBean转换为Json格式的数据
 18         javaBean2JsonObject();//将JavaBean转换为JSONObject对象
 19         json2ListInMap();//从Json字符串的Map中获取List对象
 20         list2JsonInMap();//将含list的Map对象转换为Json字符串
 21     }
 22     
 23     private static void json2JsonObject() {
 24         String s = "{"name":"peter"}";
 25         JSONObject object = JSON.parseObject(s);
 26         System.out.println(object.get("name"));
 27     }
 28     
 29     private static void json2JavaBean() {
 30         String s = "{"id":"17051801","name":"lucy"}";
 31         User user = JSON.parseObject(s, User.class);
 32         System.out.println(user.getId());
 33         System.out.println(user.getName());
 34     }
 35     
 36     private static void json2JsonArray() {
 37         String s = "[{"id":"17051801","name":"lucy"},{"id":"17051802","name":"peter"}]";
 38         JSONArray array = JSON.parseArray(s);
 39         for (int i = 0; i < array.size(); i++) {
 40             //JSONArray中的数据转换为String类型需要在外边加"";不然会报出类型强转异常!
 41             String str = array.get(i)+"";
 42             JSONObject object = JSON.parseObject(str);
 43             System.out.println(object.get("name"));
 44         }
 45     }
 46     
 47     private static void json2JavaBeanList() {
 48         String s = "[{"id":"17051801","name":"lucy"},{"id":"17051802","name":"peter"}]";
 49         List<User> list = JSON.parseArray(s, User.class);
 50         for (User user : list) {
 51             System.out.println(user.getName());
 52         }
 53     }
 54     
 55     private static void javaBean2Json() {
 56         User user = new User("17051801", "lucy");
 57         String string = JSON.toJSONString(user);
 58         System.out.println(string);
 59     }
 60     
 61     private static void javaBean2JsonObject() {
 62         User user = new User("17051801", "lucy");
 63         JSONObject json = (JSONObject) JSON.toJSON(user);
 64         System.out.println(json.get("id"));
 65     }
 66     
 67     private static void json2ListInMap() {
 68         String s = "{json:[{id:"17051801","name":"lucy"},{id:"17051802","name":"peter"},"
 69                 + "{id:"17051803","name":"tom"},{id:"17051804","name":"lily"}]}";
 70         //将Json字符串转换为JSONObject对象,并取出list对象的值
 71         JSONObject object = JSON.parseObject(s);
 72         Object objArray = object.get("json");
 73         String str = objArray+"";
 74         //方式1:转换成JSONArray对象形式
 75         JSONArray array = JSON.parseArray(str);
 76         for (int i = 0; i < array.size(); i++) {
 77             JSONObject obj = JSON.parseObject(array.get(i)+"");
 78             System.out.println(obj.get("name"));
 79         }
 80         //方式2:转换成List<JavaBean>形式
 81         List<User> list = JSON.parseArray(str, User.class);
 82         for (User user : list) {
 83             System.out.println(user.getName());
 84         }
 85     }
 86     
 87     private static void list2JsonInMap() {
 88         //方式1:构建一个带有list的JavaBean对象
 89         School school = new School();
 90         school.setId("1");
 91         school.setName("schoolA");
 92         
 93         User user1 = new User();
 94         user1.setId("17051801");
 95         user1.setName("lucy");
 96         User user2 = new User();
 97         user2.setId("17051802");
 98         user2.setName("peter");
 99         
100         school.getStudents().add(user1);
101         school.getStudents().add(user2);
102         //将JavaBean对象转换成Json字符串
103         String string1 = JSON.toJSONString(school);
104         System.out.println(string1);
105         
106         //方式2:构建一个带有list的Map对象
107         Map<String, Object> map1 = new HashMap<String,Object>();
108         map1.put("id", "17051801");
109         map1.put("name", "lucy");
110         
111         Map<String, Object> map2 = new HashMap<String,Object>();
112         map2.put("id", "17051802");
113         map2.put("name", "peter");
114         
115         List<Map<String, Object>> list = new ArrayList<Map<String, Object>>();
116         list.add(map1);
117         list.add(map2);
118         
119         Map<String, Object> map = new HashMap<String,Object>();
120         map.put("id", "1");
121         map.put("name", "schoolA");
122         map.put("students", list);
123         //将map对象转换成Json字符串
124         String string2 = JSON.toJSONString(map);
125         System.out.println(string2);
126     }
127 }
原文地址:https://www.cnblogs.com/pcheng/p/6875760.html