一、在介绍Json对象与字符串相互转换的前提下,先创建Address类和Student类
/Address类********/
public class Address {
private String homeAddr;
private String collegeAddr;
@Override
public String toString () {
return "Address{" +
"homeAddr='" + homeAddr + '\'' +
", collegeAddr='" + collegeAddr + '\'' +
'}';
}
public String getHomeAddr () {
return homeAddr;
}
public void setHomeAddr (String homeAddr) {
this.homeAddr = homeAddr;
}
public String getCollegeAddr () {
return collegeAddr;
}
public void setCollegeAddr (String collegeAddr) {
this.collegeAddr = collegeAddr;
}
}
/Student类********/
public class Student {
private String name;
private int no;
private int age;
private Address address;
@Override
public String toString () {
return "Student{" +
"name='" + name + '\'' +
", no=" + no +
", age=" + age +
", address=" + address +
'}';
}
public Address getAddress () {
return address;
}
public void setAddress (Address address) {
this.address = address;
}
public String getName () {
return name;
}
public void setName (String name) {
this.name = name;
}
public int getNo () {
return no;
}
public void setNo (int no) {
this.no = no;
}
public int getAge () {
return age;
}
public void setAge (int age) {
this.age = age;
}
}
二、对json对象的应用
import net.sf.json.JSONObject;
/**
-
测试从对象到json字符串
*/
public class TestJson {
@Test
public void test1 (){
Student s = new Student ();
s.setName ( “张三” );
s.setNo ( 126 );
s.setAge ( 22 );Address adr = new Address (); adr.setHomeAddr ( "大雁塔" ); adr.setCollegeAddr ( "未央区" ); s.setAddress ( adr ); //转换成json串 JSONObject ob = JSONObject.fromObject ( s ); System.out.println (ob.toString ());
}
结果如下:
/**- 把json串转换成对象
*/
@Test
public void test2(){
String jsonStr = “{“address”:{“collegeAddr”:“未央区”,” +
““homeAddr”:“大雁塔”},“age”:22,“name”:“张三”,“no”:126}”;
JSONObject object = JSONObject.fromObject ( jsonStr ); //把上面的json字符串转换成中间对象
Student o = (Student) JSONObject.toBean ( object,Student.class ); //toBean()方法把中间对象转换成对象
System.out.println (o);
}
}
结果如下:
三、对JsonUtil功能的应用
import net.sf.json.JSONObject;
import util.JSONUtil;
- 把json串转换成对象
public class TestJSONUtil {
@Test
public void test1(){
Student s = new Student ();
s.setName ( “张三” );
s.setNo ( 126 );
s.setAge ( 22 );
Address adr = new Address ();
adr.setHomeAddr ( "大雁塔" );
adr.setCollegeAddr ( "未央区" );
s.setAddress ( adr );
System.out.println ( JSONUtil.obj2json ( s ) );
String jsonStr = "{\"address\":{\"collegeAddr\":\"未央区\"," +
"\"homeAddr\":\"大雁塔\"},\"age\":22,\"name\":\"张三\",\"no\":126}";
JSONObject object = JSONObject.fromObject ( jsonStr ); //把上面的json字符串转换成中间对象
Student ss = (Student) JSONObject.toBean ( object,Student.class ); //toBean()方法把中间对象转换成对象;
System.out.println (ss);
}
}
结果如下: