java---json、map、实体类互转

513 阅读1分钟
package com.my.demo.Utils;
import com.alibaba.fastjson.JSON;
import lombok.Data;
import lombok.extern.slf4j.Slf4j;
import org.junit.Test;
import java.util.List;
import java.util.Map;

/**
 * json字符串、Map对象、实体类、List间相互转换
 */
@Slf4j
public class FastJsonTest {

    @Test
    public void jsonTest() {
        //json字符串转Map对象    JSON.parseObject
        String s = "{name:'bwf',age:20}";
        Map map = JSON.parseObject(s, Map.class);
        //map---name:bwf
        log.info("map---name:{}", map.get("name"));

        //json字符串转实体类对象    JSON.parseObject
        String s1 = "{name:'bwf',age:20}";
        Person person1 = JSON.parseObject(s1, Person.class);
        //person1---name:bwf
        log.info("person1---name:{}", person1.getName());

        //map转实体类
        Person person = JSON.parseObject(JSON.toJSONString(map), Person.class);
        //person---name:bwf
        log.info("person---name:{}", person.getName());

        //实体类转map
        Map map1 = JSON.parseObject(JSON.toJSONString(person), Map.class);
        //map1---name:bwf
        log.info("map1---name:{}", map1.get("name"));

        //json字符串 转List
        String s3 = "[{name:'bwf',age:20},{name:'bwf2',age:22}]";
        List<Person> persons = JSON.parseArray(s3, Person.class);
        //persons:[{"age":"20","name":"bwf"},{"age":"22","name":"bwf2"}]
        log.info("persons:{}", JSON.toJSONString(persons));

        //map、实体类 转 string    JSON.toJSONString
        log.info("persons:{}", JSON.toJSONString(persons));
        log.info("map1:{}", JSON.toJSONString(map1));

    }

}

@Data
class Person {
    String name;
    String age;
}