代码片段(4)[全屏查看所有代码]
1. [文件] User.java ~ 243B 下载(105)
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 下载(77)
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 下载(75)
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 下载(117)
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"}
*/
}
}
|