您的位置:

FastjsonMap转对象详解

Fastjson是一个Java语言编写的高性能JSON处理器,是阿里巴巴的开源产品。它可以将JSON字符串转换为Java对象,也可以将Java对象转换为JSON字符串。在Fastjson中,Map和Java Bean之间的转换是非常容易的,本文将详细介绍Fastjson中Map与Java Bean之间的转换。

一、FastjsonMap转对象不区分大小写

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"Type\":\"Java library\" }";
        JSONObject jsonObj = JSON.parseObject(jsonStr, JSONObject.class);
        System.out.println(jsonObj.getString("name"));
        System.out.println(jsonObj.getString("Type"));
        System.out.println(jsonObj.getString("type")); //输出null,不区分大小写
    }
}

在fastjson中,如果一个对象的属性名在JSON中不存在,则fastjson会将其设置为null值。对于属性名的大小写,fastjson并不区分,如果JSON中存在属性“Type”,则无论Java对象中是否有属性“type”,都能够正确地转换。

二、Fastjson对象转JSON

import com.alibaba.fastjson.JSON;

public class FastJsonDemo {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("fastjson");
        person.setAge(10);

        String jsonString = JSON.toJSONString(person);
        System.out.println(jsonString);
    }
}

class Person {
    private String name;
    private int age;

    // 省略getter和setter
}

Fastjson可以将Java对象转换为JSON字符串,只需调用JSON.toJSONString()方法即可。Fastjson默认下划线命名法转换为驼峰式命名法,即Java对象属性名为name,JSON字符串中属性名为“name”。

三、Fastjson转Map

import com.alibaba.fastjson.JSON;

import java.util.HashMap;
import java.util.Map;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
        Map map = JSON.parseObject(jsonStr, HashMap.class);
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
    }
}

  

Fastjson可以将JSON字符串转换为Map对象,只需调用JSON.parseObject()方法,并指定返回Map类型。fastjson将JSON字符串中的属性名作为Map的key,属性值作为Map的value存储。在Map对象中,属性名的大小写与JSON中的一致。

四、Fastjson对象转字符串

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;

public class FastJsonDemo {
    public static void main(String[] args) {
        JSONObject jsonObj = new JSONObject();
        jsonObj.put("name", "fastjson");
        jsonObj.put("age", 10);

        String jsonString = jsonObj.toJSONString();
        System.out.println(jsonString);
    }
}

Fastjson可以将JSONObject转换为JSON字符串,只需调用toJSONString()方法即可。JSONObject可以直接添加属性和值,但人们更多地使用Map和Java Bean封装数据。

五、Fastjson字符串转Map

import com.alibaba.fastjson.JSON;

import java.util.HashMap;
import java.util.Map;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
        Map map = JSON.parseObject(jsonStr, HashMap.class);
        System.out.println(map.get("name"));
        System.out.println(map.get("age"));
    }
}

  

Fastjson可以将JSON字符串转换为Map对象,只需调用JSON.parseObject()方法,并指定返回Map类型。fastjson将JSON字符串中的属性名作为Map的key,属性值作为Map的value存储。在Map对象中,属性名的大小写与JSON中的一致。

六、Fastjson转实体对象

import com.alibaba.fastjson.JSON;

public class FastJsonDemo {
    public static void main(String[] args) {
        String jsonStr = "{ \"name\":\"fastjson\", \"age\":10 }";
        Person person = JSON.parseObject(jsonStr, Person.class);
        System.out.println(person.getName());
        System.out.println(person.getAge());
    }
}

class Person {
    private String name;
    private int age;

    // 省略getter和setter
}

Fastjson可以将JSON字符串转换为Java对象,只需调用JSON.parseObject()方法,并指定转换的Java类型即可。在实体对象中,fastjson将JSON字符串中的属性名与实体对象中的属性名进行对应。在进行属性的转换时仍然不区分大小写。