这是关于FastJson的一个使用Demo,在Java环境下验证的

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了这是关于FastJson的一个使用Demo,在Java环境下验证的相关的知识,希望对你有一定的参考价值。

 1 public class User {
 2     private int id;  
 3     private String name;  
 4     public int getId() {  
 5         return id;  
 6     }  
 7     public void setId(int id) {  
 8         this.id = id;  
 9     }  
10     public String getName() {  
11         return name;  
12     }  
13     public void setName(String name) {  
14         this.name = name;  
15     }  
16 }
 1 public class Weibo {
 2      private String id;  
 3         private String city;  
 4       
 5         public Weibo(String id, String city) {  
 6             this.id = id;  
 7             this.city = city;  
 8         }  
 9       
10         public Weibo() {  
11         }  
12       
13         public String getId() {  
14             return id;  
15         }  
16       
17         public void setId(String id) {  
18             this.id = id;  
19         }  
20       
21         public String getCity() {  
22             return city;  
23         }  
24       
25         public void setCity(String city) {  
26             this.city = city;  
27         }  
28 }
 1 import java.util.ArrayList;
 2 import java.util.List;
 3 
 4 public class Group {
 5     private int id;  
 6     private String name;  
 7     private List<User> list = new ArrayList<User>();  
 8     public int getId() {  
 9         return id;  
10     }  
11     public void setId(int id) {  
12         this.id = id;  
13     }  
14     public String getName() {  
15         return name;  
16     }  
17     public void setName(String name) {  
18         this.name = name;  
19     }  
20     public List<User> getList() {  
21         return list;  
22     }  
23     public void setList(List<User> list) {  
24         this.list = list;  
25     }  
26 }
  1 import java.util.HashMap;  
  2 import java.util.List;  
  3 import java.util.Map;  
  4 //fastjson-1.2.8.jar  
  5 import com.alibaba.fastjson.JSON;  
  6 import com.alibaba.fastjson.JSONArray;  
  7 import com.alibaba.fastjson.JSONObject;  
  8   
  9 //下面是FastJson的简介:常用的方法!  
 10 //  Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。  
 11 //  public static final Object parse(String text); // 把JSON文本parse为JSONObject或者JSONArray   
 12 //  public static final JSONObject parseObject(String text); // 把JSON文本parse成JSONObject      
 13 //  public static final <T> T parseObject(String text, Class<T> clazz); // 把JSON文本parse为JavaBean   
 14 //  public static final JSONArray parseArray(String text); // 把JSON文本parse成JSONArray   
 15 //  public static final <T> List<T> parseArray(String text, Class<T> clazz); //把JSON文本parse成JavaBean集合   
 16 //  public static final String toJSONString(Object object); // 将JavaBean序列化为JSON文本   
 17 //  public static final String toJSONString(Object object, boolean prettyFormat); // 将JavaBean序列化为带格式的JSON文本   
 18 //  public static final Object toJSON(Object javaObject); 将JavaBean转换为JSONObject或者JSONArray(和上面方法的区别是返回值是不一样的)  
 19   
 20 /** 
 21  * 这是关于FastJson的一个使用Demo,在Java环境下验证的; 
 22  * 使用的时候可以参照这个例子进行回忆! 
 23  * 备注:下面写的Json格式的数据"前面的\,意思是告诉编译器忽略掉它后面的"。 
 24  * 后面定义有三个类:User、Group、Weibo 
 25  * @author liuzhao 
 26  */  
 27 public class JsonDemo {  
 28   
 29     public static void main(String[] args) {  
 30           
 31         json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息  
 32         json2BeanM2();//将Json文本数据转换为JavaBean数据!  
 33         json2JSONArrayM3();//将json数据转化为JSONArray:   
 34         json2JavaBeanM4();//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(String text, Class<T> clazz);   
 35         bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本 用户数据的传递:例如上传服务器  
 36         bean2JSONObjectM6();//将JavaBean转换为JSON对象  
 37         complexExampleM7();//一个相对复杂的例子:  
 38         complex2JsonM8();//一个复杂的Object到Json的Demo  
 39         complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛!  
 40     }  
 41   
 42     /** 
 43      * 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 
 44      */  
 45     private static void json2JsonObjectM1() {  
 46         //一个JsonObject文本数据  
 47         String s = "{\"name\":\"liuzhao\"}";  
 48         //将JsonObject数据转换为Json  
 49         JSONObject object = JSON.parseObject(s);  
 50         //利用键值对的方式获取到值  
 51         System.out.println("M1-"+object.get("name"));  
 52         /** 
 53          * 打印: 
 54          * liuzhao 
 55          */  
 56     }  
 57       
 58     /** 
 59      * 将Json文本数据转换为JavaBean数据! 
 60      * 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null! 
 61      */  
 62     private static void json2BeanM2() {  
 63         String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}";  
 64         //一个简单方便 的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象!  
 65         Weibo weibo = JSON.parseObject(s, Weibo.class);//Weibo类在下边定义  
 66         System.out.println("M2-"+weibo.getId());  
 67         System.out.println("M2-"+weibo.getCity());  
 68         //打印的结果     0375  
 69         //              平顶山  
 70     }  
 71   
 72   
 73     /** 
 74      * 将Map类型的数据转换为JsonString 
 75      */  
 76     private static void complexMap2JsonM9() {  
 77         Group group = new Group();  
 78         group.setId(1);  
 79         group.setName("group");  
 80           
 81         User user1 = new User();  
 82         user1.setId(2);  
 83         user1.setName("user1");  
 84   
 85         User user2 = new User();  
 86         user2.setId(3);  
 87         user2.setName("user2");  
 88         group.getList().add(user1);  
 89         group.getList().add(user2);  
 90           
 91         Map<Integer, Object> map = new HashMap<Integer,Object>();  
 92         map.put(1, "No.1");  
 93         map.put(2, "No.2");  
 94         map.put(3, group.getList());  
 95           
 96         String jsonString = JSON.toJSONString(map);  
 97         System.out.println("M9-"+jsonString);  
 98         /** 
 99          *  输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]} 
100          */  
101     }  
102   
103     /** 
104      * 由一个复杂的Object到Json的Demo 
105      */  
106     private static void complex2JsonM8() {  
107         Group group = new Group();  
108         group.setId(1);  
109         group.setName("group");  
110           
111         User user1 = new User();  
112         user1.setId(2);  
113         user1.setName("user1");  
114   
115         User user2 = new User();  
116         user2.setId(3);  
117         user2.setName("user2");  
118         group.getList().add(user1);  
119         group.getList().add(user2);  
120         String jsonString = JSON.toJSONString(group);  
121         System.out.println("M8-"+jsonString);  
122         /** 
123          *  输出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"} 
124          */  
125     }  
126   
127     /** 
128      * 一个相对复杂的例子: 
129      * JSON文本数据: 
130      *      首先是JSONObject,转换为JSONArray; 
131      *      然后将JSONArray转换为JavaBean 
132      */  
133     private static void complexExampleM7() {  
134         String s = "{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}"  
135                 + ",{id:\"110000\",\"city\":\"北#002京市\"},{id:\"110000\",\"city\":\"北#002京市\"},"  
136                 + "{id:\"110000\",\"city\":\"#006北#005京市\"},"  
137                 + "{id:\"110000\",\"city\":\"北#002京市\"},"  
138                 + "{id:\"110000\",\"city\":\"北#002京市\"},{id:\"120000\",\"city\":\"天#009津市\"}]}";  
139           
140         JSONObject object = JSON.parseObject(s);  
141         Object jsonArray = object.get("js");  
142         System.out.println("M7-"+jsonArray);  
143         List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class);  
144         for (Weibo weibo : list) {  
145             System.out.println("M7-"+weibo.getCity());  
146         }  
147     }  
148   
149     /** 
150      * 将JavaBean转换为JSON对象 
151      */  
152     private static void bean2JSONObjectM6() {  
153         Weibo weibo = new Weibo("0373", "洛阳");  
154         JSONObject json = (JSONObject) JSON.toJSON(weibo);  
155         System.out.println("M6-"+json.get("id"));  
156         /** 
157          * 打印: 
158          * 0373 
159          */  
160     }  
161   
162     /** 
163      * 将JSON文本转换为JavaBean的集合; 
164      * 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合 
165      */  
166     private static void json2JavaBeanM4() {  
167         String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";  
168         List<Weibo> list = JSON.parseArray(s, Weibo.class);  
169         for (Weibo weibo : list) {  
170             System.out.println("M4-"+weibo.getCity());  
171         }  
172         /** 
173          * 打印: 
174          * 平顶山 
175          * 南阳 
176          */  
177     }  
178   
179     /** 
180      * 将json数据转化为JSONArray: 
181      * 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合) 
182      * 获取JSONArray中的数据转换为String类型需要在外边加""; 
183      */  
184     private static void json2JSONArrayM3() {  
185         String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]";  
186         //将JSON文本转换为JSONArray  
187         JSONArray array = JSON.parseArray(s);  
188         //这行必须写:必须加上+"";不然会报出类型强转异常!  
189         String str = array.get(1)+"";  
190         System.out.println("M3-"+array.get(0));  
191         JSONObject object = JSON.parseObject(str);  
192         System.out.println("M3-"+object.get("id"));  
193         /** 
194          * {"city":"平顶山","id":"0375"} 
195             0377 
196          */  
197     }  
198   
199   
200     /** 
201      * 将JavaBean转换为Json格式的数据/Json文本 
202      * 用户数据的传递:例如上传服务器 
203      */  
204     private static void bean2JsonM5() {  
205         Weibo weibo = new Weibo("123456", "上海");  
206         String string = JSON.toJSONString(weibo);  
207         System.out.println("M5-"+string);  
208         /** 
209          * 打印: 
210          * {"city":"上海","id":"123456"} 
211          */  
212     }  
213   
214 }  

 

以上是关于这是关于FastJson的一个使用Demo,在Java环境下验证的的主要内容,如果未能解决你的问题,请参考以下文章

Jackson和FastJSON 快速上手

fastjson简单使用demo,@JSONField注解属性字段上与setget方法上。实体类toString(),实体类转json的区别;_下划线识别

Fastjson检测和利用

关于FastJSON

关于java代码签名证书的一个问题

关于FastJSON对象转字符串,对象有字段为null会自动忽略