0
点赞
收藏
分享

微信扫一扫

SpringBoot & JSON 整合

爱读书的歌者 2022-04-13 阅读 16
java
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.6.6</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>com.example</groupId>
    <artifactId>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>SpringBootJsonDemo</name>
    <description>Demo project for Spring Boot</description>
    <properties>
        <java.version>1.8</java.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.4.7</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>fastjson</artifactId>
            <version>1.2.79</version>
        </dependency>
    </dependencies>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <excludes>
                        <exclude>
                            <groupId>org.projectlombok</groupId>
                            <artifactId>lombok</artifactId>
                        </exclude>
                    </excludes>
                </configuration>
            </plugin>
        </plugins>
    </build>

</project>

package com.example.domian;

import com.alibaba.fastjson.annotation.JSONField;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.util.List;

/**
 * @author WenZiR
 * @projectName SpringBootJsonDemo
 * @description: TODO
 * @date 2022-04-08 21:04
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
@Builder
public class CurrentUserDTO implements Serializable {
    /**
     * 姓名
     */
    private String name;
    /**
     * 头像
     */
    private String avatar;
    /**
     * 用户ID
     */
    @JSONField(name = "userid")
    private String userId;
    /**
     * 邮箱
     */
    private String email;
    /**
     * 个性签名
     */
    private String signature;
    /**
     * 标题
     */
    private String title;
    /**
     * 归属组织
     */
    @JSONField(name = "group")
    private String groupInfo;
    /**
     * 通知计数
     */
    private Integer notifyCount;
    /**
     * 未读计数
     */
    private Integer unreadCount;
    /**
     * 国家
     */
    private String country;
    /**
     * 归属区域
     */
    private GeographicBean geographic;
    /**
     * 地址
     */
    private String address;
    /**
     * 手机
     */
    private String phone;
    /**
     * 标签
     */
    private List<TagsBean> tags;




    @Data
    @NoArgsConstructor
    @AllArgsConstructor
    public static class GeographicBean {
        /**
         * province : {"label":"浙江省","key":"330000"}
         * city : {"label":"杭州市","key":"330100"}
         */

        private ProvinceBean province;
        private CityBean city;

        @Data
        public static class ProvinceBean {
            /**
             * label : 浙江省
             * key : 330000
             */

            private String label;
            private String key;

        }

        @Data
        public static class CityBean {
            /**
             * label : 杭州市
             * key : 330100
             */

            private String label;
            private String key;
        }
    }

    @Data
    public static class TagsBean {
        /**
         * key : 0
         * label : 很有想法的
         */

        private String key;
        private String label;
    }
}

package com.example.controller;

import com.example.domian.CurrentUserDTO;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.ArrayList;
import java.util.List;

/**
 * @author WenZiR
 * @projectName SpringBootJsonDemo
 * @description: TODO
 * @date 2022-04-08 20:57
 */
@RestController
public class SpringBootJsonController {


    @GetMapping("/showJson")
    public CurrentUserDTO showJson() {

        CurrentUserDTO   currentUserDTO = null;
        try {
             currentUserDTO = (CurrentUserDTO) Class.forName ("com.example.domian.CurrentUserDTO").newInstance ();

            currentUserDTO.setName ("小米");
            currentUserDTO.setEmail ("9527@qq.com");
            List<CurrentUserDTO.TagsBean> tagsBeans = new ArrayList<> ();

            for (int i = 0; i < 5; i++) {
                CurrentUserDTO.TagsBean tagsBean = new CurrentUserDTO.TagsBean ();
                tagsBean.setKey (i+"");
                tagsBean.setLabel ("很有想法");
                tagsBeans.add (tagsBean);
            }
            currentUserDTO.setTags (tagsBeans);

            CurrentUserDTO.GeographicBean.ProvinceBean provinceBean = new CurrentUserDTO.GeographicBean.ProvinceBean ();

            provinceBean.setKey ("33000");
            provinceBean.setLabel ("浙江省");
            CurrentUserDTO.GeographicBean.CityBean cityBean = new CurrentUserDTO.GeographicBean.CityBean ();
            cityBean.setKey ("杭州市");
            cityBean.setLabel ("330100");
            currentUserDTO.setGeographic (new CurrentUserDTO.GeographicBean (provinceBean,cityBean));

        } catch (Exception e) {
            e.printStackTrace ();
        }
        return currentUserDTO;
    }

}

结果

在这里插入图片描述

の随便写写

举报

相关推荐

0 条评论