Spring Boot 13 -- json 的使用

一、导入依赖

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.32</version>
        </dependency>

二、常用方法

1. Json 对象转 Java 对象

json

{
    "field1": 123, 
    "field2": "xxx", 
    "field3": "xxx"
 }

Dto.java

import lombok.Data;

@Data
public class Dto {
    private int field1;
    private String field2;
    private String field3;
}

转换

    try {
            Dto dto = JSONObject.parseObject(jsonStr, Dto.class);
        } catch (Exception e) {
            // 转换出错
        }

2. Json 数组转 Java List

json

[{
    "field1": 1, 
    "field2": "xxx1", 
    "field3": "xxx1"
 },
 {
    "field1": 2, 
    "field2": "xxx2", 
    "field3": "xxx2"
 }]

Dto.java

import lombok.Data;

@Data
public class Dto {
    private int field1;
    private String field2;
    private String field3;
}

转换

    try {
            List<Dto> dtoList = JSONObject.parseArray(jsonStr, Dto.class);
        } catch (Exception e) {
            // 转换出错
        }

3、将一个实体类转成 json 对象

JSON.toJSON(dto)

4、将一个 dto list 复制到一个 vo list

List<Dto> dtoList = new ArrayList<>();
List<Vo> voList = JSON.parseArray(JSON.toJSONString(dtoList), Vo.class);

5、有序的 json 对象

JSON 数据本身是无序的,通常由字符串生成的 JSONObject 也是无序的。如果想 JSONObject 节点的顺序与字符串原本的顺序保持一致,可以借助 fastjson 很容易地实现。

  • 将字符串 data 转换成有序的 JSONObject
JSONObject jsonObject = JSONObject.parseObject(data, JSONObject.class, Feature.OrderedField);
  • 新建一个有顺序的 json 对象
JSONObject jsonObject = new JSONObject(true);
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1.1.FastJson的介绍: JSON协议使用方便,越来越流行,JSON的处理器有很多,这里我介绍一下Fast...
    小婷婷tt阅读 1,419评论 0 0
  • JSON 指 JavaScript 对象表示法(JavaScript Object Notation),是一种轻量...
    神齐阅读 1,495评论 0 11
  • # 概念JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式。 易于阅读和...
    小芸论阅读 15,311评论 0 3
  • JSON的特点: 1、JSON比XML的数据传递的有效性高;2、JSON完全独立于编程语言;3、JSON的本质是具...
    程序员之路阅读 3,531评论 0 3
  • 前言 多年以前自学Java,在本地做了一些笔记。最近几年流行播客,一方面防止丢失,一方面可以帮助其他小伙伴...
    chaohx阅读 1,036评论 0 3