1. 程式人生 > >瞭解JSON.parseObject(String str)/JSONObject.parseObject()和JSON.toJSONString()的功能

瞭解JSON.parseObject(String str)/JSONObject.parseObject()和JSON.toJSONString()的功能

今天用到了JSON物件和JSON 字串之間的相互轉換,藉此記錄一下心得。

基礎語法:

JSON字串轉化成JSON物件

JSONObject jsonobject = JSON.parseObject(str);

或者

JSONObject jsonobject = JSONObject.parseObject(str);

功能上是一樣的,都是將JSON字串(str)轉換成JSON物件 jsonobject 。注意str一定得是以鍵值對存在的JSON字串。

JSON.parseObject(String text, Class clazz)方法

JSON.parseObject(String text, Class clazz),作用就是將指定的JSON字串轉換成自己的實體類的物件

。例如:
首先定義一個自己的實體類Test:

public class Test {
    private String name;
    private String age;
    private String addr;
    private String sex;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAge() {
        return age;
    }

    public void setAge(String age) {
        this.age = age;
    }

    public String getAddr() {
        return addr;
    }

    public void setAddr(String addr) {
        this.addr = addr;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    @Override
    public String toString() {
        return "Test{" +
                "name='" + name + '\'' +
                ", age='" + age + '\'' +
                ", addr='" + addr + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }

    public Test(String name, String age, String addr, String sex) {
        this.name = name;
        this.age = age;
        this.addr = addr;
        this.sex = sex;
    }
}

然後在jsonTest測試類中進行測試

import com.alibaba.fastjson.JSON;

public class jsonTest {
    public static void main(String[] args){
    //haha是Test類沒有的
        String jsonString = "{name:'hqz',age:'18',sex:'male',haha:'sd'}";
        /**
         * JSON字串轉化成自己的實體類物件 test
         */
        Test test = JSON.parseObject(jsonString, Test.class);
        System.out.println(test.toString());

        /**
         * 物件轉化成JSON 字串
         */
        String jsonStr = JSON.toJSONString(test);
        System.out.println(jsonStr);
    }
}

輸出依次為:

test{name='hqz', age='18', addr='null', sex='male'}
{"age":"18","name":"hqz","sex":"male"}

可以看到addr=’‘null’’,說明,
①:將JSON字串轉化成物件時,會去填充名稱相同的屬性,對於JSON字串中沒有,而Test類有的屬性,會為null;
②:將物件轉化成JSON字串時,對於JSON字串有,但是Test類沒有的,不做任何處理。

以上。