在需要用到JSON对象封装数据的时候,往往会写很多代码,也有很多复制粘贴,为了用POJO的思想我们可以装JSON转化为实体对象进行操作
标签: <无>
代码片段(3)[全屏查看所有代码]
1. [代码]工具类
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
|
package
myUtil;
import
java.io.IOException;
import
myProject.Student;
import
myProject.StudentList;
import
org.codehaus.jackson.map.ObjectMapper;
import
org.json.JSONArray;
import
org.json.JSONException;
import
org.json.JSONObject;
/**
* 实体类和JSON对象之间相互转化(依赖包jackson-all-1.7.6.jar、jsoup-1.5.2.jar)
* @author wck
*
*/
public
class
JSONUtil {
/**
* 将json转化为实体POJO
* @param jsonStr
* @param obj
* @return
*/
public
static
<T> Object JSONToObj(String jsonStr,Class<T> obj) {
T t =
null
;
try
{
ObjectMapper objectMapper =
new
ObjectMapper();
t = objectMapper.readValue(jsonStr,
obj);
}
catch
(Exception e) {
e.printStackTrace();
}
return
t;
}
/**
* 将实体POJO转化为JSON
* @param obj
* @return
* @throws JSONException
* @throws IOException
*/
public
static
<T> JSONObject objectToJson(T obj)
throws
JSONException, IOException {
ObjectMapper mapper =
new
ObjectMapper();
// Convert object to JSON string
String jsonStr =
""
;
try
{
jsonStr = mapper.writeValueAsString(obj);
}
catch
(IOException e) {
throw
e;
}
return
new
JSONObject(jsonStr);
}
public
static
void
main(String[] args)
throws
JSONException, IOException {
JSONObject obj =
null
;
obj =
new
JSONObject();
obj.put(
"name"
,
"213"
);
obj.put(
"age"
,
27
);
JSONArray array =
new
JSONArray();
array.put(obj);
obj =
new
JSONObject();
obj.put(
"name"
,
"214"
);
obj.put(
"age"
,
28
);
array.put(obj);
Student stu = (Student) JSONToObj(obj.toString(), Student.
class
);
JSONObject objList =
new
JSONObject();
objList.put(
"student"
, array);
System.out.println(
"objList:"
+objList);
StudentList stuList = (StudentList) JSONToObj(objList.toString(), StudentList.
class
);
System.out.println(
"student:"
+stu);
System.out.println(
"stuList:"
+stuList);
System.out.println(
"#####################################"
);
JSONObject getObj = objectToJson(stu);
System.out.println(getObj);
}
}
|
2. [代码]实体(子类)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
package
myProject;
public
class
Student {
private
String name;
private
int
age;
//private StudentClass studentClass;
public
String getName() {
return
name;
}
public
void
setName(String name) {
this
.name = name;
}
public
int
getAge() {
return
age;
}
public
void
setAge(
int
age) {
this
.age = age;
}
@Override
public
String toString() {
return
"Student [name="
+ name +
", age="
+ age +
"]"
;
}
}
|
3. [代码]实体父类
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
package
myProject;
import
java.util.List;
public
class
StudentList {
List<Student> student;
public
List<Student> getStudent() {
return
student;
}
public
void
setStudent(List<Student> student) {
this
.student = student;
}
@Override
public
String toString() {
return
"StudentList [student="
+ student +
"]"
;
}
}
|
举报