在开发中我们常用到对josn对象进行解析,json转换成java对象和java对象转换成json。
对于这些操作相互转换,我们进行学习和说明:
对于以上实现需要用到jar包进行下载(整理了一份,可以根据链接到百度云盘进行下载,永久有效):
链接:https://pan.baidu.com/s/1pICGN-kS5nNhlYXmOG1dIQ 提取码:hrbr
创建实体类Person:
package com.test07.json;
public class Person {
private String name;
private int num;
private String sex;
private int age;
public Person() {
// TODO Auto-generated constructor stub
}
public Person(String name, int num, String sex, int age) {
super();
this.name = name;
this.num = num;
this.sex = sex;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
1.josn对象进行解析
package com.test07.json;
import net.sf.json.JSONObject;
public class ParseJson {
private String jsonStr;
public ParseJson() { }
public ParseJson(String str){
this.jsonStr = str;
}
/**
* 解析json字符串
*/
public void parse(){
JSONObject jsonObject = JSONObject.fromObject(jsonStr);
String name = jsonObject.getString("name");
int num = jsonObject.getInt("num");
String sex = jsonObject.getString("sex");
int age = jsonObject.getInt("age");
System.out.println(name + " " + num + " " + sex + " " + age);
}
/*//将json字符串转换为java对象
@SuppressWarnings("static-access")
public Person JSON2Object(){
//接收{}对象,此处接收数组对象会有异常
if(jsonStr.indexOf("[") != -1){
jsonStr = jsonStr.replace("[", "");
}
if(jsonStr.indexOf("]") != -1){
jsonStr = jsonStr.replace("]", "");
}
JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象
return jb;//返回一个Person对象
} */
}
2.json转换成java对象
//将json字符串转换为java对象
@SuppressWarnings(“static-access”)
public Person JSON2Object(){
//接收{}对象,此处接收数组对象会有异常
if(jsonStr.indexOf("[") != -1){
jsonStr = jsonStr.replace("[", "");
}
if(jsonStr.indexOf("]") != -1){
jsonStr = jsonStr.replace("]", "");
}
JSONObject obj = new JSONObject().fromObject(jsonStr);//将json字符串转换为json对象
Person jb = (Person)JSONObject.toBean(obj,Person.class);//将建json对象转换为Person对象
return jb;//返回一个Person对象
}
3.java对象转换成json
package com.test07.json;
import net.sf.json.JSONObject;
/**
-
将java对象转换为json字符串
-
@author Administrator
*/
public class ConsJson {public ConsJson() {
// TODO Auto-generated constructor stub
}public String Object2Json(Object obj){
JSONObject json = JSONObject.fromObject(obj);//将java对象转换为json对象
String str = json.toString();//将json对象转换为字符串
return str;
}
}
测试类:
package com.test07.json;
public class Test {
public static void main(String[] args) {
//将字符串转换为json对象,然后根据键得到相应的值
ParseJson pj = new ParseJson("{“name”:“gu”,“num”:123456,“sex”:“male”,“age”:24}");
pj.parse();
//将一个json字符串转换为java对象
Person p = pj.JSON2Object();
System.out.println("Name:" + p.getName());
System.out.println("Num:" + p.getNum());
System.out.println("Sex:" + p.getSex());
System.out.println("age:" + p.getAge());
//将一个java对象转换为Json字符串
Person p1 = new Person("gu1",123,"male",23);
ConsJson cj = new ConsJson();
String str1 = cj.Object2Json(p1);
System.out.println(str1);
}
}
4.利用在线工具:
在线JSON字符串转Java实体类
http://www.bejson.com/json2javapojo/new/