最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot中如何自動(dòng)轉(zhuǎn)JSON輸出

 更新時(shí)間:2022年06月16日 10:57:37   作者:我也不知道取什么好  
這篇文章主要介紹了Springboot中如何自動(dòng)轉(zhuǎn)JSON輸出,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教

Springboot是如此的暴力

在Controller中注解為@RestController類、@GetMapping或其他Mapping注解方法后

會(huì)自動(dòng)轉(zhuǎn)成JSON格式…

后臺(tái)打印

{msg=已查詢到163條數(shù)據(jù), data_size=163, code=0, data=[Tersga{aname='萬家鋪村', sum=10, run=10, down=0, req=10}, Tersga{aname='萬年橋', sum=4, run=4, down=0, req=4}, Tersga{aname='萬龍村', sum=16, run=16, down=0, req=16}, Tersga{aname='三合村', sum=19, run=19, down=0, req=19}, Tersga{aname='上華山村', sum=6, run=6, down=0, req=6}, Tersga{aname='上杉市', sum=358, run=358, down=0, req=358}, Tersga{aname='東塘村', sum=4, run=4, down=0, req=4}, Tersga{aname='東山村', sum=17, run=17, down=0, req=17}, Tersga{aname='九木村', sum=4, run=4, down=0, req=4}, Tersga{aname='九溪源村', sum=15, run=15, down=0, req=15}, Tersga{aname='九田村', sum=3, run=3, down=0, req=3}, Tersga{aname='五福村', sum=8, run=8, down=0, req=8}, Tersga{aname='五美社區(qū)', sum=1, run=1, down=0, req=1}, Tersga{aname='五龍山村', sum=13, run=13, down=0, req=13}, Tersga{aname='仙人市村', sum=13, run=13, down=0, req=13}, Tersga{aname='光達(dá)村', sum=15, run=15, down=0, req=15}, Tersga{aname='農(nóng)裕村', sum=10, run=10, down=0, req=10}, Tersga{aname='鳳山村', sum=2, run=2, down=0, req=2}, Tersga{aname='北山村', sum=6, run=6, down=0, req=6}, Tersga{aname='雙沖村', sum=14, run=14, down=0, req=14}, Tersga{aname='雙江村', sum=13, run=13, down=0, req=13}, Tersga{aname='雙起村', sum=4, run=4, down=0, req=4}, Tersga{aname='雙龍村', sum=1, run=1, down=0, req=1}, Tersga{aname='古井社區(qū)', sum=24, run=22, down=2, req=24}, Tersga{aname='古華山村', sum=3, run=3, down=0, req=3}, Tersga{aname='和平村', sum=15, run=15, down=0, req=15}, Tersga{aname='唐田村', sum=32, run=32, down=0, req=32}, Tersga{aname='回龍村', sum=4, run=4, down=0, req=4}, Tersga{aname='團(tuán)山村', sum=13, run=13, down=0, req=13}, Tersga{aname='大眾村', sum=12, run=12, down=0, req=12}, Tersga{aname='大興村', sum=5, run=5, down=0, req=5}, Tersga{aname='大橋村', sum=10, run=10, down=0, req=10}, Tersga{aname='大魚塘村', sum=6, run=6, down=0, req=6}, Tersga{aname='天華村', sum=2, run=2, down=0, req=2}, Tersga{aname='太興村', sum=19, run=19, down=0, req=19}, Tersga{aname='太平村', sum=12, run=12, down=0, req=12}, Tersga{aname='孫家橋村', sum=9, run=9, down=0, req=9}, Tersga{aname='安沙社區(qū)', sum=15, run=15, down=0, req=15}, Tersga{aname='安沙調(diào)試', sum=5, run=5, down=0, req=5}, Tersga{aname='宋家橋村', sum=55, run=55, down=0, req=55}, Tersga{aname='官塘村', sum=8, run=8, down=0, req=8}, Tersga{aname='官橋村', sum=20, run=20, down=0, req=20}, Tersga{aname='山筆村', sum=11, run=11, down=0, req=11}, Tersga{aname='崩坎村', sum=3, run=3, down=0, req=3}, Tersga{aname='常樂村', sum=135, run=135, down=0, req=135}, Tersga{aname='干杉社區(qū)', sum=12, run=12, down=0, req=12}, Tersga{aname='廣福村', sum=3, run=3, down=0, req=3}, Tersga{aname='開慧村', sum=8, run=8, down=0, req=8}, Tersga{aname='影珠山村', sum=7, run=7, down=0, req=7}, Tersga{aname='惠農(nóng)村', sum=12, run=12, down=0, req=12}, Tersga{aname='打卦嶺村', sum=11, run=11, down=0, req=11}, Tersga{aname='拔茅田村', sum=13, run=13, down=0, req=13}, Tersga{aname='接駕嶺社區(qū)', sum=6, run=6, down=0, req=6}, Tersga{aname='文家塅村', sum=10, run=10, down=0, req=10}, Tersga{aname='斗塘新村', sum=11, run=11, down=0, req=11}, Tersga{aname='新中村', sum=12, run=12, down=0, req=12}, Tersga{aname='新云村', sum=8, run=8, down=0, req=8}, Tersga{aname='新華村', sum=12, run=12, down=0, req=12}, Tersga{aname='新明村', sum=13, run=12, down=1, req=13}, Tersga{aname='新橋村', sum=7, run=7, down=0, req=7}, Tersga{aname='新橋社區(qū)', sum=4, run=4, down=0, req=4}, Tersga{aname='新沙村', sum=12, run=12, down=0, req=12}, Tersga{aname='明月', sum=3, run=3, down=0, req=3}, Tersga{aname='明月村', sum=79, run=79, down=0, req=79}, Tersga{aname='春華山村', sum=7, run=7, down=0, req=7}, Tersga{aname='李家山社區(qū)', sum=3, run=3, down=0, req=3}, Tersga{aname='楊四廟社區(qū)', sum=15, run=13, down=2, req=15}, Tersga{aname='楊梓沖村', sum=15, run=15, down=0, req=15}, Tersga{aname='松元村', sum=2, run=2, down=0, req=2}, Tersga{aname='楓林市村', sum=3, run=3, down=0, req=3}, Tersga{aname='梁坪村', sum=1, run=1, down=0, req=1}, Tersga{aname='梅塘村', sum=12, run=12, down=0, req=12}, Tersga{aname='梅花社區(qū)', sum=2, run=2, down=0, req=2}, Tersga{aname='武塘村', sum=5, run=5, down=0, req=5}, Tersga{aname='毛塘社區(qū)', sum=17, run=17, down=0, req=17}, Tersga{aname='水塘垸村', sum=21, run=21, down=0, req=21}, Tersga{aname='沙田村', sum=15, run=15, down=0, req=15}, Tersga{aname='油鋪村', sum=11, run=11, down=0, req=11}, Tersga{aname='沿江山村', sum=13, run=13, down=0, req=13}, Tersga{aname='泗洲村', sum=14, run=14, down=0, req=14}, Tersga{aname='洞田村', sum=2, run=2, down=0, req=2}, Tersga{aname='洪河村', sum=3, run=3, down=0, req=3}, Tersga{aname='測(cè)試一', sum=11, run=11, down=0, req=11}, Tersga{aname='潯龍河村', sum=25, run=24, down=1, req=25}, Tersga{aname='澗山村', sum=12, run=12, down=0, req=12}, Tersga{aname='湘陰港村', sum=1, run=1, down=0, req=1}, Tersga{aname='牌樓村', sum=155, run=155, down=0, req=155}, Tersga{aname='特立村', sum=1, run=1, down=0, req=1}, Tersga{aname='獅山村', sum=20, run=20, down=0, req=20}, Tersga{aname='王公橋村', sum=2, run=1, down=1, req=2}, Tersga{aname='王梓園村', sum=15, run=15, down=0, req=15}, Tersga{aname='田漢村', sum=26, run=26, down=0, req=26}, Tersga{aname='白塔村', sum=12, run=12, down=0, req=12}, Tersga{aname='白沙村', sum=8, run=8, down=0, req=8}, Tersga{aname='白石源村', sum=3, run=3, down=0, req=3}, Tersga{aname='百錄村', sum=9, run=9, down=0, req=9}, Tersga{aname='石井村', sum=12, run=12, down=0, req=12}, Tersga{aname='石塘鋪村', sum=3, run=3, down=0, req=3}, Tersga{aname='石弓灣社區(qū)', sum=13, run=13, down=0, req=13}, Tersga{aname='石板村', sum=10, run=10, down=0, req=10}, Tersga{aname='石燕村', sum=2, run=2, down=0, req=2}, Tersga{aname='磚田新村', sum=1, run=1, down=0, req=1}, Tersga{aname='福臨鋪社區(qū)', sum=3, run=3, down=0, req=3}, Tersga{aname='福安村', sum=264, run=264, down=0, req=264}, Tersga{aname='福田村', sum=12, run=12, down=0, req=12}, Tersga{aname='福高村', sum=6, run=6, down=0, req=6}, Tersga{aname='維漢村', sum=4, run=4, down=0, req=4}, Tersga{aname='羅代社區(qū)', sum=3, run=3, down=0, req=3}, Tersga{aname='肖排村', sum=1, run=1, down=0, req=1}, Tersga{aname='脫甲村', sum=22, run=22, down=0, req=22}, Tersga{aname='脫甲社區(qū)', sum=10, run=10, down=0, req=10}, Tersga{aname='花園新村', sum=5, run=5, down=0, req=5}, Tersga{aname='花果村', sum=12, run=12, down=0, req=12}, Tersga{aname='花橋村', sum=11, run=11, down=0, req=11}, Tersga{aname='花橋?yàn)炒?#39;, sum=109, run=109, down=0, req=109}, Tersga{aname='范林村', sum=5, run=5, down=0, req=5}, Tersga{aname='荊華', sum=214, run=214, down=0, req=214}, Tersga{aname='榮合橋社區(qū)', sum=473, run=473, down=0, req=473}, Tersga{aname='榮河村', sum=15, run=15, down=0, req=15}, Tersga{aname='葛家山村', sum=7, run=7, down=0, req=7}, Tersga{aname='蒲塘村', sum=18, run=18, down=0, req=18}, Tersga{aname='蒿塘社區(qū)', sum=2, run=2, down=0, req=2}, Tersga{aname='藍(lán)田新村', sum=17, run=17, down=0, req=17}, Tersga{aname='西山村', sum=16, run=16, down=0, req=16}, Tersga{aname='西湖村', sum=4, run=4, down=0, req=4}, Tersga{aname='觀佳村', sum=8, run=8, down=0, req=8}, Tersga{aname='譚坊新村', sum=11, run=11, down=0, req=11}, Tersga{aname='谷塘村', sum=4, run=4, down=0, req=4}, Tersga{aname='賽頭村', sum=4, run=4, down=0, req=4}, Tersga{aname='赤馬村', sum=12, run=12, down=0, req=12}, Tersga{aname='路口社區(qū)', sum=9, run=9, down=0, req=9}, Tersga{aname='車馬村', sum=15, run=15, down=0, req=15}, Tersga{aname='金井社區(qū)', sum=10, run=10, down=0, req=10}, Tersga{aname='金鳳村', sum=13, run=13, down=0, req=13}, Tersga{aname='金星村', sum=6, run=6, down=0, req=6}, Tersga{aname='金橋村', sum=3, run=3, down=0, req=3}, Tersga{aname='金江新村', sum=18, run=17, down=1, req=18}, Tersga{aname='金牛村', sum=6, run=6, down=0, req=6}, Tersga{aname='金鼎山村', sum=6, run=6, down=0, req=6}, Tersga{aname='金龍村', sum=10, run=10, down=0, req=10}, Tersga{aname='銀龍村', sum=2, run=2, down=0, req=2}, Tersga{aname='錫福村', sum=6, run=6, down=0, req=6}, Tersga{aname='錦繡社區(qū)', sum=10, run=10, down=0, req=10}, Tersga{aname='長(zhǎng)安村', sum=20, run=20, down=0, req=20}, Tersga{aname='長(zhǎng)春', sum=2, run=2, down=0, req=2}, Tersga{aname='青山村', sum=11, run=11, down=0, req=11}, Tersga{aname='青山鋪社區(qū)', sum=3, run=3, down=0, req=3}, Tersga{aname='青田村', sum=5, run=5, down=0, req=5}, Tersga{aname='飄峰山村', sum=4, run=4, down=0, req=4}, Tersga{aname='高倉村', sum=9, run=9, down=0, req=9}, Tersga{aname='高塘村', sum=16, run=16, down=0, req=16}, Tersga{aname='高岸村', sum=1, run=1, down=0, req=1}, Tersga{aname='魚塘村', sum=5, run=5, down=0, req=5}, Tersga{aname='鹿芝嶺村', sum=13, run=13, down=0, req=13}, Tersga{aname='麻林', sum=322, run=322, down=0, req=322}, Tersga{aname='黃興新村', sum=13, run=13, down=0, req=13}, Tersga{aname='黃橋村', sum=11, run=11, down=0, req=11}, Tersga{aname='鼎功橋村', sum=13, run=13, down=0, req=13}, Tersga{aname='龍華新村', sum=12, run=12, down=0, req=12}, Tersga{aname='龍華村', sum=9, run=9, down=0, req=9}, Tersga{aname='龍泉村', sum=12, run=12, down=0, req=12}, Tersga{aname='龍泉社區(qū)', sum=610, run=610, down=0, req=610}, Tersga{aname='龍王廟村', sum=8, run=8, down=0, req=8}], time=2019-02-13 01:53:27}

POSTMAN進(jìn)行g(shù)et獲取的結(jié)果

{
    "msg": "已查詢到163條數(shù)據(jù)",
    "data_size": 163,
    "code": 0,
    "data": [
        {
            "aname": "萬家鋪村",
            "sum": 10,
            "run": 10,
            "down": 0,
            "req": 10
        },
        {
            "aname": "萬年橋",
            "sum": 4,
            "run": 4,
            "down": 0,
            "req": 4
        },
        {
            "aname": "萬龍村",
            "sum": 16,
            "run": 16,
            "down": 0,
            "req": 16
        },
        {
            "aname": "三合村",
            "sum": 19,
            "run": 19,
            "down": 0,
            "req": 19
        },
        {
            "aname": "上華山村",
            "sum": 6,
            "run": 6,
            "down": 0,
            "req": 6
        }
    ],
    "time": "2019-02-13 01:55:13"
}

原因

因?yàn)锧RestController是組合注解

等于SpringMVC:@Controller+@ResponstBody

package org.springframework.web.bind.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ResponseBody;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Controller
@ResponseBody
public @interface RestController {
    String value() default "

Springboot自動(dòng)轉(zhuǎn)json的出現(xiàn)問題

問題復(fù)現(xiàn)

上代碼:

1、實(shí)體類

package com.example.demo;
 
/**
 * @author Mr.xiong
 * #description model
 * #date: 2022/4/8 10:08
 * @version v1.0.0
 * @since jdk8
 */
public class model {
    private String a;
    private String b;
    private boolean e;
    private Boolean f;
 
    public Boolean getF() {
        return false;
    }
 
    public boolean isE() {
        return false;
    }
 
    public boolean areC(){
        return false;
    }
 
    public Boolean isD(){
        return null;
    }
 
    public String getA() {
        return a;
    }
 
    public void setA(String a) {
        this.a = a;
    }
 
    public String getB() {
        return b;
    }
 
    public void setB(String b) {
        this.b = b;
    }
}

2、controller類

package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
 
/**
 * @author Mr.xiong
 * #description web
 * #date: 2022/4/8 10:08
 * @version v1.0.0
 * @since jdk8
 */
@RestController
public class web {
    @GetMapping
    public R demo(){
        model m1 = new model();
        m1.setA("a1");
        m1.setB("b1");
        model m2 = new model();
        m2.setA("a2");
        m2.setB("b2");
        List<model> models = new ArrayList<>();
        models.add(m1);
        models.add(m2);
        return R.success(200,"success",models);
    }
}

3、統(tǒng)一返回風(fēng)格消息類

package com.example.demo; 
import java.util.Objects;
 
/**
 * @author Mr.xiong
 * #description R
 * #date: 2022/4/8 10:08
 * @version v1.0.0
 * @since jdk8
 */
public class R {
    private Integer code;
    private String msg;
    private Object obj; 
    public R(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }
 
    public R(Integer code, String msg, Object obj) {
        this.code = code;
        this.msg = msg;
        this.obj = obj;
    }
 
    public Integer getCode() {
        return code;
    }
 
    public void setCode(Integer code) {
        this.code = code;
    }
 
    public String getMsg() {
        return msg;
    }
 
    public void setMsg(String msg) {
        this.msg = msg;
    }
 
    public Object getObj() {
        return obj;
    }
 
    public void setObj(Object obj) {
        this.obj = obj;
    }
 
    @Override
    public String toString() {
        return "R{" +
                "code=" + code +
                ", msg='" + msg + '\'' +
                ", obj=" + obj +
                '}';
    }
 
    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        R r = (R) o;
        return code.equals(r.code) && msg.equals(r.msg) && obj.equals(r.obj);
    }
 
    @Override
    public int hashCode() {
        return Objects.hash(code, msg, obj);
    }
 
    public static R success(Integer code,String msg){
        return new R(code, msg);
    }
 
    public static R success(Integer code,String msg,Object obj){
        return new R(code, msg,obj);
    }
}

訪問接口獲得的數(shù)據(jù)如下:

 問題分析及解決辦法

public Boolean isD(){ return null; }

可以看到,我們有這個(gè)方法,但是沒有D這個(gè)屬性,但是卻實(shí)實(shí)在在打印了這個(gè)值。原因是因?yàn)閟pringboot自動(dòng)轉(zhuǎn)json把他當(dāng)做了一個(gè)屬性。這是為什么呢?是因?yàn)椴紶栔档膅etter事實(shí)上boolean的getter方法就是 isXxxx,因此出現(xiàn)此問題也就不奇怪了解決方法,不要使用isXxx就可以避免此類問題。當(dāng)我把isD修改為D之后,就解決了。

如下:

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • java二叉樹的遍歷方式詳解

    java二叉樹的遍歷方式詳解

    這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)二叉樹遍歷的四種方式,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下,希望能給你帶來幫助
    2021-08-08
  • 教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目

    教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目

    這篇文章主要介紹了教你如何用Eclipse創(chuàng)建一個(gè)Maven項(xiàng)目,文中有非常詳細(xì)的代碼示例,對(duì)正在入門Java的小伙伴們是非常有幫助的喲,需要的朋友可以參考下
    2021-05-05
  • 空指針HttpSession異常之SpringBoot集成WebSocket的方法

    空指針HttpSession異常之SpringBoot集成WebSocket的方法

    文章介紹了在Spring?Boot中集成WebSocket時(shí)遇到的HttpSession為空的問題,并探討了三種解決方法,方法一涉及域名配置,方法二通過監(jiān)聽創(chuàng)建Session,而方法三是從request中獲取session并存入數(shù)據(jù),感興趣的朋友一起看看吧
    2025-01-01
  • 基于Java回顧之多線程詳解

    基于Java回顧之多線程詳解

    在這篇文章里,我們關(guān)注多線程。多線程是一個(gè)復(fù)雜的話題,包含了很多內(nèi)容,這篇文章主要關(guān)注線程的基本屬性、如何創(chuàng)建線程、線程的狀態(tài)切換以及線程通信,我們把線程同步的話題留到下一篇文章中
    2013-05-05
  • Springboot使用Maven占位符@替換不生效問題及解決

    Springboot使用Maven占位符@替換不生效問題及解決

    這篇文章主要介紹了Springboot使用Maven占位符@替換不生效問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Spring?Security實(shí)現(xiàn)接口放通的方法詳解

    Spring?Security實(shí)現(xiàn)接口放通的方法詳解

    在用Spring?Security項(xiàng)目開發(fā)中,有時(shí)候需要放通某一個(gè)接口時(shí),我們需要在配置中把接口地址配置上,這樣做有時(shí)候顯得麻煩。本文將通過一個(gè)注解的方式快速實(shí)現(xiàn)接口放通,感興趣的可以了解一下
    2022-05-05
  • Spring Boot集成Spring Cloud Security進(jìn)行安全增強(qiáng)的方法

    Spring Boot集成Spring Cloud Security進(jìn)行安全增強(qiáng)的方法

    Spring Cloud Security是Spring Security的擴(kuò)展,它提供了對(duì)Spring Cloud體系中的服務(wù)認(rèn)證和授權(quán)的支持,包括OAuth2、JWT等,這篇文章主要介紹了Spring Boot集成Spring Cloud Security進(jìn)行安全增強(qiáng),需要的朋友可以參考下
    2024-11-11
  • JDK8中String的intern()方法實(shí)例詳細(xì)解讀

    JDK8中String的intern()方法實(shí)例詳細(xì)解讀

    String字符串在我們?nèi)粘i_發(fā)中最常用的,當(dāng)然還有他的兩個(gè)兄弟StringBuilder和StringBuilder,接下來通過本文給大家介紹JDK8中String的intern()方法詳細(xì)解讀,需要的朋友可以參考下
    2022-09-09
  • Javaweb實(shí)現(xiàn)完整個(gè)人博客系統(tǒng)流程

    Javaweb實(shí)現(xiàn)完整個(gè)人博客系統(tǒng)流程

    這篇文章主要介紹了怎樣用Java來實(shí)現(xiàn)一個(gè)完整的個(gè)人博客系統(tǒng),我們通過實(shí)操上手的方式可以高效的鞏固所學(xué)的基礎(chǔ)知識(shí),感興趣的朋友一起來看看吧
    2022-03-03
  • idea替換快捷鍵,批量處理對(duì)象的操作

    idea替換快捷鍵,批量處理對(duì)象的操作

    這篇文章主要介紹了idea替換快捷鍵,批量處理對(duì)象的操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評(píng)論

新昌县| 合作市| 凌源市| 岐山县| 沽源县| 阜平县| 和平区| 临夏县| 定安县| 洞口县| 兖州市| 南城县| 唐山市| 习水县| 繁昌县| 麟游县| 界首市| 开原市| 随州市| 铜鼓县| 泽州县| 樟树市| 桓仁| 南部县| 金堂县| 武邑县| 邵武市| 定日县| 南宫市| 肇东市| 广东省| 万州区| 千阳县| 白银市| 张家川| 读书| 商都县| 遂川县| 商城县| 策勒县| 沙田区|