fastjson使用public修饰 private转化Object有问题 注意事项

版本:fastjson.jar 1.1.33

字段为非StringObject时,若不是使用public修饰,则必须有对应的get、set方法,

字段类选为boolean时,必须使用public;

综合各种考虑,应当直接全部使用public修饰!

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
import java.util.ArrayList;  
import java.util.List;

import com.alibaba.fastjson.JSON;

class User {
public Long id;
public String name;
int age;
public String adress;
List<String> teachers;
public void setTeachers(List<String> teachers) {
this.teachers = teachers;
}
public List<String> getTeachers(){
return this.teachers;
}
}

public class Test {
public static void main(String[] args) {
List<String> teachers = new ArrayList<>();
for (int i = 0; i < 5; i++) {
teachers.add(i+"");
}
User rootUser = new User();
rootUser.id = 3L;
rootUser.name = "root";
rootUser.teachers = teachers;
// rootUser.setTeachers(teachers);

String jsonString = JSON.toJSONString(rootUser);

System.out.println(jsonString);

User user = JSON.parseObject(jsonString, User.class);

System.out.println(user.id);
// System.out.println(user.getTeachers());
System.out.println(user.teachers);

}
}