实体对象与JSONObject对象与json格式字符串之间的相互转换

这里用User类来举例

class User {
    private String username;
    private String password;

    public User() { }

    public User(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    @Override
    public String toString() {
        return "User{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

调用阿里的fastjson工具类来转换

import com.alibaba.fastjson.JSONObject;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

import java.util.HashMap;

@SpringBootTest
public class JSONTest {

    @Test //实体对象 <-> JSONObject对象
    public void objToJsonObj() {
        User user = new User("admin", "123");
        //实体对象先转json字符串
        String jsonString = JSONObject.toJSONString(user);
        //json字符串再转JSONObject对象
        JSONObject jsonObject = JSONObject.parseObject(jsonString);
        //JSONObject对象 -> 实体对象
        User object = JSONObject.toJavaObject(jsonObject, User.class);
        System.out.println("实体对象:" + object);
        System.out.println("JSONObject对象:"+jsonObject);
        System.out.println("json格式字符串:" + jsonString);
    }

    @Test //实体对象 <-> json格式字符串
    public void objToJsonString() {
        User user = new User("admin", "123");
        //实体对象 -> json格式字符串
        String jsonString = JSONObject.toJSONString(user);
        //json格式字符串 -> 实体对象
        User object = JSONObject.parseObject(jsonString, User.class);
        System.out.println("实体对象:" + object);
        System.out.println("json格式字符串:" + jsonString);
    }

    @Test //JSONObject对象 <-> json格式字符串
    public void jsonObjToJsonString() {
        HashMap<String, Object> map = new HashMap<>();
        map.put("username", "admin");
        map.put("password", "123456");
        JSONObject jsonObject = new JSONObject(map);
        //JSONObject对象 -> json格式字符串
        String jsonString = JSONObject.toJSONString(jsonObject);
        //json格式字符串 -> JSONObject对象
        JSONObject jsonObj = JSONObject.parseObject(jsonString);
        System.out.println("JSONObject对象" + jsonObj);
        System.out.println("json格式字符串" + jsonString);
    }
}

总结:

  1. 实体对象转json字符串 String jsonString = JSONObject.toJSONString(user);
  2. json字符串转实体对象 User user = JSONObject.parseObject(jsonString, User.class);
  3. JSONObject对象转json字符串 String jsonString = JSONObject.toJSONString(jsonObject);
  4. json字符串转JSONObject对象 JSONObject jsonObject = JSONObject.parseObject(jsonString);
  5. JSONObject对象转实体对象 User user = JSONObject.toJavaObject(jsonObject, User.class);
  6. 实体对象转JSONObject对象 需要借用json字符串再转换

注意:这里对象中的属性只是String类型

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值