1、javabean to jsonString 要求成员变量非私有,否则;要求每一个成员变量都有对应的公有getter方法。 2、jsonString to javabean 要求javabean必须实现默认构造方法,否则直接抛异常。 在实现默认构造的前提下,还求成员变量非私有,否则;要求每一个成员变量都有对应的公有setter方法。 3、最标准的实现是: 私有化成员变量,并为其添加getter和setter方法。 如果要生成有参构造方法,必须附带无参构造方法。
------FastJson使用注意事项--- 字段不同没关系,都可以通过,甚至一个字段都不匹配都可以
但是被转换的javabean必须存在无参构造方法
--- 举个例子
----- 3个javabean
Man,java
public class Man {
public String tall;
public Man() {
}
@Override
public String toString() {
return "Man{" +
"tall='" + tall + '\'' +
'}';
}
}
Student.Java
public class Student {
public String name;
public String id;
public String stuenetId;
public String sex;
public Student() {
}
public Student(String name, String id, String stuenetId) {
this.name = name;
this.id = id;
this.stuenetId = stuenetId;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
", stuenetId='" + stuenetId + '\'' +
", sex='" + sex + '\'' +
'}';
}
}
People.java
public class People {
public String name;
public String id;
public People() {
}
public People(String name, String id) {
this.name = name;
this.id = id;
}
@Override
public String toString() {
return "People{" +
"name='" + name + '\'' +
", id='" + id + '\'' +
'}';
}
}
MainActivity.java
public class MainActivity extends AppCompatActivity {
private static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fastJsonWithDiffFields();
}
private void fastJsonWithDiffFields() {
Student student = new Student("李明明", "007", "008");
People people = new People("程英", "123");
String s = JSON.toJSONString(student);
String p = JSON.toJSONString(people);
Log.i(TAG, "fastJsonWithDiffFields: s = " + s);
Log.i(TAG, "fastJsonWithDiffFields: p = " + p);
// TODO: 2017/3/23 s - > People
// Caused by: com.alibaba.fastjson.JSONException: default constructor not found. class com.adnonstop.fastjsonfieldtest.bean.People
People people1 = JSON.parseObject(s, People.class);
if (people1 != null)
Log.i(TAG, "fastJsonWithDiffFields: s - > People = " + people1.toString());
// TODO: 2017/3/23 p->Stuent
Student student1 = JSON.parseObject(p, Student.class);
if (student1 != null)
Log.i(TAG, "fastJsonWithDiffFields: p - > Student = " + student1);
// TODO: 2017/3/23 p - >Man
Man man = JSON.parseObject(p, Man.class);
if (man != null)
Log.i(TAG, "fastJsonWithDiffFields: man = " + man.toString());
}
}
---------- 执行结果
s = {"id":"007","name":"李明明","stuenetId":"008"}
p = {"id":"123","name":"程英"}
s - > People = People{name='李明明', id='007'}
p - > Student = Student{name='程英', id='123', stuenetId='null', sex='null'}
p -> man = Man{tall='null'}
本文介绍了FastJson在转换JavaBean时的注意事项,即使字段不匹配也能进行转换,但要求被转换的对象具备无参构造方法。通过举例展示了Man、People和MainActivity三个JavaBean如何运用FastJson进行操作。
1106

被折叠的 条评论
为什么被折叠?



