Json和JsonUtil的功能--字符串与对象之间的相互转化

一、在介绍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;

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);
}

}
结果如下:
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值