FastJson的基本用法----转
1. [文件] User.java ~ 243B
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
class User{ private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }} |
2. [文件] Group.java ~ 458B
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
import java.util.ArrayList;import java.util.List;class Group{ private int id; private String name; private List<User> list = new ArrayList<User>(); public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public List<User> getList() { return list; } public void setList(List<User> list) { this.list = list; }} |
3. [文件] Weibo.java ~ 359B
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
class Weibo { private String id; private String city; public Weibo(String id, String city) { this.id = id; this.city = city; } public Weibo() { } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getCity() { return city; } public void setCity(String city) { this.city = city; }} |
4. [文件] JsonDemo.java ~ 7KB
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
|
import java.util.HashMap;import java.util.List;import java.util.Map;import com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONArray;import com.alibaba.fastjson.JSONObject;//下面是FastJson的简介:常用的方法!// Fastjson API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在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(和上面方法的区别是返回值是不一样的)/** * 这是关于FastJson的一个使用Demo,在Java环境下验证的; * 使用的时候可以参照这个例子进行回忆! * 备注:下面写的Json格式的数据"前面的\,意思是告诉编译器忽略掉它后面的"。 * 后面定义有三个类:User、Group、Weibo * @author liuzhao */public class JsonDemo { public static void main(String[] args) { json2JsonObjectM1();//将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 json2BeanM2();//将Json文本数据转换为JavaBean数据! json2JSONArrayM3();//将json数据转化为JSONArray: json2JavaBeanM4();//将JSON文本转换为JavaBean的集合;转换为单纯的1个Object:parseObject(String text, Class<T> clazz); bean2JsonM5();//将JavaBean转换为Json格式的数据/Json文本 用户数据的传递:例如上传服务器 bean2JSONObjectM6();//将JavaBean转换为JSON对象 complexExampleM7();//一个相对复杂的例子: complex2JsonM8();//一个复杂的Object到Json的Demo complexMap2JsonM9();//将Map数据转换为JsonString的Demo;这个对RedBoy服务端不就直接破了嘛! } /** * 将Json文本数据信息转换为JsonObject对象,然后利用键值对的方式获取信息 */ private static void json2JsonObjectM1() { //一个JsonObject文本数据 String s = "{\"name\":\"liuzhao\"}"; //将JsonObject数据转换为Json JSONObject object = JSON.parseObject(s); //利用键值对的方式获取到值 System.out.println(object.get("name")); /** * 打印: * liuzhao */ } /** * 将Json文本数据转换为JavaBean数据! * 需要注意的是:这时候的Json文本信息中的键的名称必须和JavaBean中的字段名称一样!键中没有的在这个JavaBean中就显示为null! */ private static void json2BeanM2() { String s = "{\"id\":\"0375\",\"city\":\"平顶山\"}"; //一个简单方便 的方法将Json文本信息转换为JsonObject对象的同时转换为JavaBean对象! Weibo weibo = JSON.parseObject(s, Weibo.class);//Weibo类在下边定义 System.out.println(weibo.getId()); System.out.println(weibo.getCity()); //打印的结果 0375 // 平顶山 } /** * 将Map类型的数据转换为JsonString */ private static void complexMap2JsonM9() { Group group = new Group(); group.setId(1); group.setName("group"); User user1 = new User(); user1.setId(2); user1.setName("user1"); User user2 = new User(); user2.setId(3); user2.setName("user2"); group.getList().add(user1); group.getList().add(user2); Map<Integer, Object> map = new HashMap<Integer,Object>(); map.put(1, "No.1"); map.put(2, "No.2"); map.put(3, group.getList()); String jsonString = JSON.toJSONString(map); System.out.println(jsonString); /** * 输出:{1:"No.1",2:"No.2",3:[{"id":2,"name":"user1"},{"id":3,"name":"user2"}]} */ } /** * 由一个复杂的Object到Json的Demo */ private static void complex2JsonM8() { Group group = new Group(); group.setId(1); group.setName("group"); User user1 = new User(); user1.setId(2); user1.setName("user1"); User user2 = new User(); user2.setId(3); user2.setName("user2"); group.getList().add(user1); group.getList().add(user2); String jsonString = JSON.toJSONString(group); System.out.println(jsonString); /** * 输出:{"id":1,"list":[{"id":2,"name":"user1"},{"id":3,"name":"user2"}],"name":"group"} */ } /** * 一个相对复杂的例子: * JSON文本数据: * 首先是JSONObject,转换为JSONArray; * 然后将JSONArray转换为JavaBean */ private static void complexExampleM7() { String s = "{js:[{id:\"110000\",\"city\":\"北#001京市\"},{id:\"110000\",\"city\":\"北#002京市\"}" + ",{id:\"110000\",\"city\":\"北#002京市\"},{id:\"110000\",\"city\":\"北#002京市\"}," + "{id:\"110000\",\"city\":\"#006北#005京市\"}," + "{id:\"110000\",\"city\":\"北#002京市\"}," + "{id:\"110000\",\"city\":\"北#002京市\"},{id:\"120000\",\"city\":\"天#009津市\"}]}"; JSONObject object = JSON.parseObject(s); Object jsonArray = object.get("js"); System.out.println(jsonArray); List<Weibo> list = JSON.parseArray(jsonArray+"", Weibo.class); for (Weibo weibo : list) { System.out.println(weibo.getCity()); } } /** * 将JavaBean转换为JSON对象 */ private static void bean2JSONObjectM6() { Weibo weibo = new Weibo("0373", "洛阳"); JSONObject json = (JSONObject) JSON.toJSON(weibo); System.out.println(json.get("id")); /** * 打印: * 0373 */ } /** * 将JSON文本转换为JavaBean的集合; * 内部实现肯定是:首先转换为JSONArray,然后再转换为List集合 */ private static void json2JavaBeanM4() { String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]"; List<Weibo> list = JSON.parseArray(s, Weibo.class); for (Weibo weibo : list) { System.out.println(weibo.getCity()); } /** * 打印: * 平顶山 * 南阳 */ } /** * 将json数据转化为JSONArray: * 注意:获取到JSONArray之后(我们这里只是获取到JSONArray而不是JavaBean的List集合) * 获取JSONArray中的数据转换为String类型需要在外边加""; */ private static void json2JSONArrayM3() { String s = "[{\"id\":\"0375\",\"city\":\"平顶山\"},{\"id\":\"0377\",\"city\":\"南阳\"}]"; //将JSON文本转换为JSONArray JSONArray array = JSON.parseArray(s); //这行必须写:必须加上+"";不然会报出类型强转异常! String str = array.get(1)+""; System.out.println(array.get(0)); JSONObject object = JSON.parseObject(str); System.out.println(object.get("id")); /** * {"city":"平顶山","id":"0375"} 0377 */ } /** * 将JavaBean转换为Json格式的数据/Json文本 * 用户数据的传递:例如上传服务器 */ private static void bean2JsonM5() { Weibo weibo = new Weibo("123456", "上海"); String string = JSON.toJSONString(weibo); System.out.println(string); /** * 打印: * {"city":"上海","id":"123456"} */ }} |
转自:http://www.oschina.net/code/snippet_228315_35122
FastJson的基本用法----转的更多相关文章
- fast-json.jar的用法
fast-json.jar 解析json数据:一种json数据解析方式是这种,点击这里下载jsonfast.jar+fastjsonAPI文档 [ { "id": 6378, &q ...
- FastJson中JSONObject用法及常用方法总结
本文为博主原创,未经允许不得转载: 最近一直有用到解析各种数据,主要是用FastJson进行数据解析,其中一个重要的类为JSONObject,今天有时间,所以进行总结一下: JSONobject是Fa ...
- fastjson的常用用法以及自定义排序
fastJson的四种常用方法 JSON 转 POJO public static <T> T getObject(String pojo, Class<T> tclass) ...
- 浅谈FastJson的TypeReference用法
简单描述:看同事提交的代码,发现有一行代码 似曾相识,但却朦朦胧胧,ε=(´ο`*)))唉很明显自己没掌握呗,于是乎,就百度了一下 干货:对进行泛型的反序列化,使用TypeReference可以明确的 ...
- fastjson经常用法
首先,JSON究竟是什么? JSON就是一串字符串 仅仅只是元素会使用特定的符号标注. {} 双括号表示对象 [] 中括号表示数组 "" 双引號内是属性或值 : 冒号表示后者是前者 ...
- FastJson的简单实用
一.FastJson的理解 在工作中,经常客服端需要和服务端进行通信,目前很多项目都采用JSON的方式进行数据传输,简单的参数可以通过手动拼接JSON字符串,但如果请求的参数过多,采用手动拼接JSON ...
- fastjson 使用教程
fastjson 是阿里的开源项目,具网上的说法 fastjson 的解析速度是 Gson 的6倍,体积小,而且开源. 项目地址: https://github.com/alibaba/fastjso ...
- Java FastJson 介绍
1.前言 1.1.FastJson的介绍: JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下FastJson,FastJson是阿里的开源框架,被不少企业使用,是一个极其优秀的 ...
- 75、JSON 解析库---FastJson, Gson
JSON 的简介: JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.用于数据转换传输, 通用于PHP,Java,C++,C#,Python等编程语言数据交 ...
随机推荐
- json-c-0.9 的简单用法
1.下载安装包路径: wget http://oss.metaparadigm.com/json-c/json-c-0.9.tar.gz 2.解压安装包 tar zxvf json-c-0.9.tar ...
- tracking 问题解决
1.dir,或者C++函数读文件名,不推荐.搞乱了名字 2. matio读写矩阵
- Think Python - Chapter 16 - Classes and functions
16.1 TimeAs another example of a user-defined type, we’ll define a class called Time that records th ...
- 尽量多的以 const/enum/inline 替代 #define
前言 在面向过程语言,如 C 语言中,#define 非常常见,也确实好用,值得提倡.但在如今面向对象的语言,如 C++ 语言中,#define 就要尽量少用了. 为何在 C++ 中就要少用了呢? 这 ...
- 能不能对metronic继续封装一下呢
按照这篇文章的说法,目前metronic的层级还是较低的,只是针对Bootstrap做了很多的用例(最佳实践). 我上一个项目是用easy UI,准确地说,是经过简单封装的easy UI.用起来非常爽 ...
- [转载] 已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc),编写函数 strcpy(C++版)
已知strcpy的函数原型:char *strcpy(char *strDest, const char *strSrc)其中strDest 是目的字符串,strSrc 是源字符串.不调用C++/C ...
- C++ Primer:第八章:IO库(续)
二:文件输入输出. (1) 使用文件流对象: 头文件fstream定义了三个类型来支持文件IO:ifstream从一个给定的文件中读取数据,ofstream向一个给定的文件中写入数据,以及fstrea ...
- Linux1.0源代码编译过程
根据源代码包中的readme文件及http://chfj007.blog.163.com/blog/static/173145044201191195856806/?suggestedreading& ...
- Python路径总结
Windows下文件路径的分隔符是'\'反斜杠,文件路径也是一个字符串,牵扯到'\'在Python字符串中存在转义的情况,就对这个问题做一个探究. Python字符串中要使用'\'时有两种方法: 使用 ...
- java多线程:并发包中ConcurrentHashMap和jdk的HashMap的对比
一:HashMap--->底层存储的是Entry<K,V>[]数组--->Entry<K,V>的结构是一个单向的链表static class Entry<K, ...