#嵌套json
jsonstr="{
"grade":"一班",
"studentnum":"3",
"student":[{
"xh":"0313001",
"name":"zhangsan",
"chengji": [{"ceyan":"one","yuwen":"71","shuxue":"72","yingyu":"73"},{"ceyan":"two","yuwen":"76","shuxue":"77","yingyu":"78"}],
"xh":"0313002",
"name":"lisi",
"chengji":[{"ceyan":"one","yuwen":"81","shuxue":"82","yingyu":"83"},{"ceyan":"one","yuwen":"86","shuxue":"87","yingyu":"88"}],
"xh":"0313003",
"name":"wangswu",
"chengji":[{"ceyan":"one","yuwen":"91","shuxue":"92","yingyu":"93"},{"ceyan":"one","yuwen":"96","shuxue":"97","yingyu":"98"}]
}]
}"
#定义的JavaBean实体类
public class JsonRootBean {
private String grade;
private String studentnum;
private List<Student> student;
public void setGrade(String grade) {
this.grade = grade;
}
public String getGrade() {
return grade;
}
public void setStudentnum(String studentnum) {
this.studentnum = studentnum;
}
public String getStudentnum() {
return studentnum;
}
public void setStudent(List<Student> student) {
this.student = student;
}
public List<Student> getStudent() {
return student;
}
}
public class Student {
private String xh;
private String name;
private List<Chengji> chengji;
public void setXh(String xh) {
this.xh = xh;
}
public String getXh() {
return xh;
}
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
public void setChengji(List<Chengji> chengji) {
this.chengji = chengji;
}
public List<Chengji> getChengji() {
return chengji;
}
}
public class Chengji {
private String cyss;
private String yuwen;
private String shuxue;
private String yingyu;
public void setCyss(String cyss) {
this.cyss = cyss;
}
public String getCyss() {
return cyss;
}
public void setYuwen(String yuwen) {
this.yuwen = yuwen;
}
public String getYuwen() {
return yuwen;
}
public void setShuxue(String shuxue) {
this.shuxue = shuxue;
}
public String getShuxue() {
return shuxue;
}
public void setYingyu(String yingyu) {
this.yingyu = yingyu;
}
public String getYingyu() {
return yingyu;
}
}
#该如何转换啊?
转用python import json 直接解决
使用这个类就可以啊net.sf.json.JSONObject
@Test
public void toBean() {
Chengji c1 = new Chengji();
c1.setCyss("one");
c1.setShuxue("72");
c1.setYingyu("73");
c1.setYuwen("91");
Student stu = new Student();
List<Chengji> list = new ArrayList<>();
list.add(c1);
stu.setChengji(list);
List<Student> students = new ArrayList<>();
students.add(stu);
JsonRootBean j1 = new JsonRootBean();
j1.setGrade("一班");
j1.setStudent(students);
j1.setStudentnum("3");
JSONObject jsonObject = JSONObject.fromObject(j1);
String str = jsonObject.toString();
System.out.println(str);
String jsonString = "{\"student\":[{\"xh\":\"\",\"name\":\"\",\"chengji\":[{\"yingyu\":\"73\",\"yuwen\":\"91\",\"shuxue\":\"72\",\"cyss\":\"one\"}]}],\"grade\":\"一班\",\"studentnum\":\"3\"}";
JSONObject jObject = JSONObject.fromObject(jsonString);
//JSONObject jObject = JSONObject.fromObject(str);
JsonRootBean jsonRootBean = (JsonRootBean)JSONObject.toBean(jObject,JsonRootBean.class);
System.out.println(jsonRootBean);
}
结果:
{"student":[{"xh":"","name":"","chengji":[{"yingyu":"73","yuwen":"91","shuxue":"72","cyss":"one"}]}],"grade":"一班","studentnum":"3"}
JsonRootBean [grade=一班, studentnum=3, student=[net.sf.ezmorph.bean.MorphDynaBean@d2cc05a[
{xh=, name=, chengji=[net.sf.ezmorph.bean.MorphDynaBean@4f933fd1[
{yingyu=73, yuwen=91, shuxue=72, cyss=one}
]]}
]]]
我是想生成这样的关系表对应的list,方便list直接插入数据库:
表1:gradeid grade studentnum
表2:gradeid xh name studentid
表3:studentid ceyan yuwen shuxue yingyu
引入json jar包,
JSON.parseArray() 方法
String jsonString = "";//你的json 字符串
ist<User> userList = new ArrayList<>();
userList = JSON.parseArray(jsonString, User.class) ;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
//一句代码搞定
JsonRootBean jsonRootBean = JSON.toJavaObject(JSONObject.parseObject(jsonstr), JsonRootBean .class);
maven引入依赖包:
com.alibaba
fastJson
1.2.17
import com.google.gson.Gson
Gson gson = new Gson();
List<类名> list = gson.fromJson(orgsx,new TypeToken>() {}.getType());
Gson gson = new Gson();
List<类名> list = gson.fromJson(json, new TypeToken>() { }.getType());
尖括号发不了 后面是new TypeToken《List《类名》》(){ }.getType());
直接在你的项目中添加Gson依赖就可以了,Gson最基本的操作都可以解决,https://blog.csdn.net/adventer/article/details/79068498
可以看下这个https://blog.csdn.net/xionglangs/article/details/81353687。
jackson gson 随便一个json转换包都可以,查下api就行