JAVA:json和对象的转换

Java:

JSON字符串和对象之间的转换

JSON字符串和对象集合之间的转换

代码:

package com.wenjian.demo.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.wenjian.demo.entity.Person;
import org.springframework.util.StringUtils;

import java.util.List;

/**
 * JSON的工具类
 *
 * @author nn
 * @date 2021/1/5 - 11:33
 */
public class JsonUtils {

    /**
     * JSON格式字符串转换为对象
     */
    public static Person jsonToObject(String jsonStr) {

        if (StringUtils.isEmpty(jsonStr)) {
            return null;
        }

        //对象JSON字符串转为JSONObject对象
        //JSONObject jsonObject = (JSONObject) JSONObject.parse(jsonStr);
        //或者
        JSONObject jsonObject = JSONObject.parseObject(jsonStr);

        /**JSON.toJSONString()方法把JSONObject对象转为JSON字符串
         *JSON.parseObject()把JSON字符串转为对象
         * 注意:JSON.toJSONString()方法中为JSONObject对象
         */
        Person person = JSON.parseObject(JSON.toJSONString(jsonObject), Person.class);
        return person;
    }

    /**
     * JSON格式字符串转换为对象集合
     */
    public static List<Person> jsonToObjectCollection(String jsonStrCollect) {

        if (StringUtils.isEmpty(jsonStrCollect)) {
            return null;
        }

        //对象集合JSON字符串转为JSONArray对象
        //JSONArray jsonArray = (JSONArray)JSONArray.parse(jsonStrCollect);
        //或者
        JSONArray jsonArray = JSONArray.parseArray(jsonStrCollect);

        /**JSON.toJSONString()方法把JSONArray转为JSON字符串
         * JSON.parseObject()把JSON字符串转为对象
         * 注意:JSON.toJSONString()方法中为JSONArray对象
         */
        List<Person> persons = JSON.parseObject(JSON.toJSONString(jsonArray), new TypeReference<List<Person>>() {
        });

        return persons;
    }

    /**
     * JSON格式字符串转换为对象
     */
    public static Person jsonCovertObject(String jsonStr) {

        if (StringUtils.isEmpty(jsonStr)) {
            return null;
        }

        //对象JSON字符串使用JSON.parseObject()转为对象
        Person person = JSON.parseObject(jsonStr, Person.class);

        return person;
    }

    /**
     * JSON格式字符串转换为对象集合
     */
    public static List<Person> jsonConvertObjectCollection(String jsonStrCollect) {

        if (StringUtils.isEmpty(jsonStrCollect)) {
            return null;
        }

        //对象JSON字符串使用JSON.parseObject()转为对象集合
        List<Person> persons = JSON.parseObject(jsonStrCollect, new TypeReference<List<Person>>() {
        });

        return persons;
    }


    /**
     * JSON格式字符串转换为对象集合
     */
    public static List<Person> jsonConvertObjectCollection2(String jsonStrCollect) {

        if (StringUtils.isEmpty(jsonStrCollect)) {
            return null;
        }

        //对象JSON字符串使用JSON.parseObject()转为对象集合
        List<Person> persons = JSON.parseObject(jsonStrCollect, ArrayList.class);

        return persons;
    }


    public static void main(String[] args) {

        /**
         * JSON字符串和对象之间的转换
         */
        String jsonStr = "{\"name\":\"文件\",\"sex\":\"男\"}";
        Person person1 = JsonUtils.jsonToObject(jsonStr);
        if (person1 != null) {
            System.out.println(person1.toString());
        }

        /**
         * JSON字符串和对象之间的转换
         */
        Person person2 = JsonUtils.jsonCovertObject(jsonStr);
        if (person2 != null) {
            System.out.println(person2.toString());
        }

        /**
         * JSON字符串和对象集合之间的转换
         */
        String jsonStrCollect = "[{\"name\":\"111\",\"sex\":\"男\"},{\"name\":\"222\",\"sex\":\"女\"}]";
        List<Person> persons1 = JsonUtils.jsonToObjectCollection(jsonStrCollect);
        if (persons1 != null) {
            System.out.println(persons1.toString());
        }

        /**
         * JSON字符串和对象集合之间的转换
         */
        List<Person> persons2 = JsonUtils.jsonConvertObjectCollection(jsonStrCollect);
        if (persons2 != null) {
            System.out.println(persons2.toString());
        }

    }

}

package com.wenjian.demo.entity;

/**
 * 人的实体类
 *
 * @author nn
 * @date 2021/1/5 - 11:46
 */
public class Person {

    /**
     * 姓名
     */
    private String name;

    /**
     * 性别
     */
    private String sex;

    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

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

    @Override
    public String toString() {
        return "Person{" +
                "name='" + name + '\'' +
                ", sex='" + sex + '\'' +
                '}';
    }
}
 //Maven依赖,版本根据自己选择
 <dependency>
       <groupId>com.alibaba</groupId>
       <artifactId>fastjson</artifactId>
       <version>1.2.49</version>
 </dependency>

记个笔记

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值