JSON.parseObject(json字符串,对象.class)将str转对象 (JSONObject.parseObject)

将JSON字符串转换成java中的POJO对象。在fastJson中已经有提供好的方法:JSON.parseObject(json字符串,对象.class);使用方式如下:

package json;

import com.alibaba.fastjson.JSON;

public class TestJson {

    String name;
    String age;

    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 static void main(String[] args) {
        String jsonStr = "{\"name\":\"james\", \"age\":12}";
        TestJson test = JSON.parseObject(jsonStr, TestJson.class);
        System.out.printf("Name = %s, age = %s", test.getName(), test.getAge());
    }
}

运行后结果如下:

Name = james, age = 12
使用jar包:fastjson-1.1.36.jar包

parseObject(String str)的作用
JSON.parseObject(String str)是将str转化为相应的JSONObject对象,其中str是“键值对”形式的json字符串,转化为JSONObject对象之后就可以使用其内置的方法,进行各种处理了。

JSON.parseObject(String str)与 JSONObject.parseObject(String str)的区别
根据源码显示:JSON是一个抽象类,JSON中有一个静态方法parseObject(String text),将text解析为一个JSONObject对象并返回;JSONObject是一个继承自JSON的类,当调用JSONObject.parseObject(result)时,会直接调用父类的parseObject(String text)。所以两者没什么区别,一个是用父类去调用父类自己的静态的parseObject(String text),一个是用子类去调用父类的静态parseObject(String text),两者调的是同一个方法。

参考:

https://segmentfault.com/q/1010000005733442

http://blog.csdn.net/dafeige8/article/details/73924034