java json转对象_JSON对象转换为JAVA对象

我们在做项目的时候通常会遇到JSON字符串,我们所需要的数据就在这JSON字符串中,所以我们需要把JSON字符串中的数据拿出来,接下来我将告诉大家如何操作。

{

"country": "中国",

"province": [{

"city": "西安",

"postoffice": 710126,

"school": {

"name": "西安电子科技大学",

"major": "computer"

},

"capital": "true"

},

{

"city": "北京",

"postoffice": 826123,

"school": {

"name": "北京大学",

"major": "fiance"

},

"capital": "true"

},

{

"city": "温州市",

"postoffice": 236556,

"school": {

"name": "浙江大学",

"major": "accounting"

},

"capital": "false"

}

]

}

首先查看我么接收到的JSON字符串在JSON校验器上检验查看JSON是否合法,如果校验器显示为正确的JSON这时候我们开始进行对象转换工作。

dcc070001900

image.png

接着我们在我们项目的pom文件中中加入相关的依赖。

net.sf.json-lib

json-lib

2.4

jdk15

然后对照JSON的形式编写对应的java类(一般{} 对应的java类,[]对应的数组, :对应java类中的属性)

public class InternationalSchool implements Serializable{

private String country;

private List province;

public String getCountry() {

return country;

}

public void setCountry(String country) {

this.country = country;

}

public List getProvince() {

return province;

}

public void setProvince(List province) {

this.province = province;

}

@Override

public String toString() {

return "InternationalSchool{" +

"country='" + country + '\'' +

", province=" + province +

'}';

}

}

public class Province implements Serializable{ {

private String city;

private String postoffice;

private List school;

private boolean capital;

public String getCity() {

return city;

}

public void setCity(String city) {

this.city = city;

}

public String getPostoffice() {

return postoffice;

}

public void setPostoffice(String postoffice) {

this.postoffice = postoffice;

}

public List getSchool() {

return school;

}

public void setSchool(List school) {

this.school = school;

}

public boolean isCapital() {

return capital;

}

public void setCapital(boolean capital) {

this.capital = capital;

}

@Override

public String toString() {

return "Province{" +

"city='" + city + '\'' +

", postoffice='" + postoffice + '\'' +

", school=" + school +

", capital=" + capital +

'}';

}

}

public class School implements Serializable{ {

private String name;

private String major;

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getMajor() {

return major;

}

public void setMajor(String major) {

this.major = major;

}

@Override

public String toString() {

return "School{" +

"name='" + name + '\'' +

", major='" + major + '\'' +

'}';

}

}

接着我们编写测试类进行测试。

import net.sf.json.JSONObject;

import java.util.List;

public class Demo {

public static void main(String[] args) {

String jsonData = "{\n" +

"\t\"country\": \"中国\",\n" +

"\t\"province\": [{\n" +

"\t\t\t\"city\": \"西安\",\n" +

"\t\t\t\"postoffice\": 710126,\n" +

"\t\t\t\"school\": {\n" +

"\t\t\t\t\"name\": \"西安电子科技大学\",\n" +

"\t\t\t\t\"major\": \"computer\"\n" +

"\t\t\t},\n" +

"\t\t\t\"capital\": \"true\"\n" +

"\t\t},\n" +

"\t\t{\n" +

"\t\t\t\"city\": \"北京\",\n" +

"\t\t\t\"postoffice\": 826123,\n" +

"\t\t\t\"school\": {\n" +

"\t\t\t\t\"name\": \"北京大学\",\n" +

"\t\t\t\t\"major\": \"fiance\"\n" +

"\t\t\t},\n" +

"\t\t\t\"capital\": \"true\"\n" +

"\t\t},\n" +

"\t\t{\n" +

"\t\t\t\"city\": \"温州市\",\n" +

"\t\t\t\"postoffice\": 236556,\n" +

"\t\t\t\"school\": {\n" +

"\t\t\t\t\"name\": \"浙江大学\",\n" +

"\t\t\t\t\"major\": \"accounting\"\n" +

"\t\t\t},\n" +

"\t\t\t\"capital\": \"false\"\n" +

"\t\t}\n" +

"\t]\n" +

"}";

JSONObject jsonObject= JSONObject.fromObject(jsonData);

InternationalSchool inSchool = (InternationalSchool) JSONObject.toBean(jsonObject,InternationalSchool.class);

System.out.println(inSchool);

String country = inSchool.getCountry();

List provinces = inSchool.getProvince();

System.out.println("打印provinces的到的是provinces中的结果");

}

}

最后查看运行结果

dcc070001900

image.png

总结:JSON对象和JAVA对象转换常见的情况。

JSON 对象装换为JAVA对象

JSONObject jsonObject= JSONObject.fromObject(jsonData);

InternationalSchool inSchool = (InternationalSchool) JSONObject.toBean(jsonObject,InternationalSchool.class);

JAVA对象转换为JSON对象

School school = new School();

school.setMajor("computer");

school.setName("西安电子科技大学");

JSONObject jsonData = JSONObject.fromObject(school);

System.out.println(jsonData);

JSONArray对象转为JAVA对象

JSONArray array = JSONArray.fromObject("province ");

List list = JSONArray.toList(array, Person.class);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值