第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

如何自定義 spring rest 控制器的 json 輸出

如何自定義 spring rest 控制器的 json 輸出

www說(shuō) 2023-02-23 09:55:36
我有一個(gè)具有以下屬性的 POJO 類(lèi)患者:public class Patient implements Serializable{    private static final long serialVersionUID = 2L;    private long id;    private String name;    private Date dob;    private String phoneNo;    private String email;    private Address address;    private String username;    private String password;....現(xiàn)在,從我的休息控制器中,我只需要在 json 中發(fā)送患者的姓名、電話號(hào)碼、電子郵件和地址。我希望 json 輸出為{   "check":"Success",   "details":{      "name":"Test User",      "phoneNo":"9876544321",      "email":"test@gmail.com",      "address":"Address"   }}此處檢查成功/失敗僅作為標(biāo)志添加。
查看完整描述

3 回答

?
蝴蝶刀刀

TA貢獻(xiàn)1801條經(jīng)驗(yàn) 獲得超8個(gè)贊

Spring boot 使用 Jackson 進(jìn)行 JSON 序列化和反序列化,嘗試使用 @JSONIgnore (com.fasterxml.jackson.annotation.JsonIgnore)。



查看完整回答
反對(duì) 回復(fù) 2023-02-23
?
qq_笑_17

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超7個(gè)贊

為您的要求

PatientDTO.java


public class PatientDTO {

    private Check check;


    @JsonIgnoreProperties(value = {"id", "dob", "username", "password"})

    private Object details;


    /* Getter & Setter */


    public enum Check {

        SUCCESS("Success"),

        FAILURE("Failure");


        private String name;


        Check(String name) {

            this.name = name;

        }


        @JsonValue

        public String getName() {

            return name;

        }

    }

}

控制器演示:


@RestController

@RequestMapping("/test")

public class TestController {


    @GetMapping("/patient")

    public PatientDTO getPatient() {

        PatientDTO patientDTO = new PatientDTO();

        patientDTO.setCheck(PatientDTO.Check.SUCCESS);

        patientDTO.setDetails(new Patient());

        return patientDTO;

    }

}

更好的方法

使用 http 狀態(tài)



@JsonInclude(JsonInclude.Include.NON_NULL)

public class Patient {

    private long id;

    private String name;

    private Date dob;

    private String phoneNo;

    private String email;

    private Address address;

    private String username;

    private String password;


    /* Getter & Setter */

}

控制器演示:


@RestController

@RequestMapping("/test")

public class TestController {


    @GetMapping("patient")

    // or @ResponseStatus(HttpStatus.OK)

    public ResponseEntity<Patient> patient() {

        Patient patient = new Patient();

        patient.setId(123);

        patient.setName("123");

        patient.setEmail("demo@demo.com");

        patient.setPassword(null); // set to null to ignore password

        return ResponseEntity.ok(patient);

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-02-23
?
明月笑刀無(wú)情

TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超4個(gè)贊

只需創(chuàng)建另一個(gè)對(duì)象并將其用作您的 restful 控制器的響應(yīng);


public class PatientResponse implements Serializable {


    private static final long serialVersionUID = 2L;


    private Check check;

    private Detail details;


    // getter, setter, etc


    public static class Detail {


        private String name;

        private String phoneNo;

        private String email;

        private String address;


        // getters, setters, etc

    }


    public enum Check {

        Success, Failure

    }

}

& 在控制器中


@RestController

public class PatientController {


    @GetMapping(...)

    public PatientResponse get(...) {

        Patient patient = ... // get patient somehow

        return mapPatientToResponse(patient);  // map Patient to PatientResponse here

    }

}


查看完整回答
反對(duì) 回復(fù) 2023-02-23
  • 3 回答
  • 0 關(guān)注
  • 161 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)