pojo转json,操作的过程为:
1. 定义一个pojo类teacher,三个属性:id,name,course,取得get/set事件。
package demo0201;
public class teacher {
int id;
String name;
String course;
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 String getCourse() {
return course;
}
public void setCourse(String course) {
this.course = course;
}
}
2. 在另外一个包中定义一个class文件,赋值给teacher,然后打印出来
package my.lesson2;
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONObject;
import demo0201.teacher;
public class testJson {
public static void main(String[] args) {
test2();
}
public static void test1(){
teacher pojo = new teacher(2018001,"shao","Language");
JSONObject jobj = new JSONObject(pojo);
String jstr = jobj.toString(2);
System.out.println(jstr);
}
public static void test2(){
ArrayList<teacher> teachers = new ArrayList();
teachers.add(new teacher(2018001,"shao","Language"));
teachers.add(new teacher(2018002,"wang","English"));
teachers.add(new teacher(2018003,"gao","Math"));
JSONArray jarray = new JSONArray(teachers);
System.out.println(jarray.toString(2));
}
}
执行过程中遇到问题,提示:The constructor teacher(int,string,string) is undefined
原因是因为在pojo 中没有定义三个参数的构造器,在teacher中添加如下:
public teacher(int id, String name, String course)
{
this.id = id;
this.name = name;
this.course = course;
}
解决问题,显示如下:
[
{
"course": "Language",
"id": 2018001,
"name": "shao"
},
{
"course": "English",
"id": 2018002,
"name": "wang"
},
{
"course": "Math",
"id": 2018003,
"name": "gao"
}
]