亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 RestFull web 服務在 java 中響應打印請求的屬性?

如何使用 RestFull web 服務在 java 中響應打印請求的屬性?

瀟湘沐 2023-02-16 16:10:52
我一直在關注 RestFull webservices 的教程,但我無法理解某些概念。這是我的 PersonServiceImpl 類。    @Path("/person")    @Consumes(MediaType.APPLICATION_JSON)    @Produces(MediaType.APPLICATION_JSON)    public class PersonServiceImpl implements PersonService{    private static Map<Integer,Person> person = new HashMap<Integer,Person>();    @Override    @Path("/add")    @POST    public Response addPerson(Person p) {        Response response = new Response();        if(person.get(p.getId())!=null) {            response.setStatus(false);            response.setMessage("Person already exists");        }            person.put(p.getId(),p);            response.setStatus(true);            response.setMessage("Person added sucessfully ");            return response;    }    @Override    public Response deletePerson(int id) {        // TODO Auto-generated method stub        return null;    }    @Override    public Person getPerson(int id) {        // TODO Auto-generated method stub        return null;    }    @Override    public Person[] getAllPerson() {        // TODO Auto-generated method stub        return null;    }   }我對代碼進行了一些更改以生成和使用 json 文件。這是我的個人課程@XmlRootElement(name = "person")public class Person {    private String name;    private int age;    private int id;    public String getName() {        return name;    }    public void setName(String name) {        this.name = name;    }    public int getAge() {        return age;    }    public void setAge(int age) {        this.age = age;    }    public int getId() {        return id;    }    public void setId(int id) {        this.id = id;    }}這是我的響應類@XmlRootElementpublic class Response {    private boolean status;    private String message;    public boolean isStatus() {        return status;    }    public void setStatus(boolean status) {        this.status = status;    }}我想知道 :如何在響應中打印 person 類的值?json 值如何映射到 java 屬性以及在哪里?3.如果我在 json 請求中輸入一個額外的值,該值會發生什么變化?教程鏈接:https://www.journaldev.com/9170/restful-web-services-tutorial-java
查看完整描述

1 回答

?
飲歌長嘯

TA貢獻1951條經驗 獲得超3個贊

首先,實現自己的Response類不是一個好主意。該類javax.ws.rs.core.Response存在并且應該用于 JAX-RS 方法的一般響應。


關于 1:如果“打印”是指返回實例的 JSON 表示形式Person,只需執行以下操作:


    @Override

    public Person getPerson(int id) {

        Person personForId = person.get(id);

        if (personForId == null) {

          thrown new NotFoundException();

        }

        return personForId;

    }

該Person實例將自動序列化為 JSON 表示形式。


關于 2:由于Person遵循 Java Bean 的 getter 和 setter 約定,JSON 元素將按名稱映射到 bean 屬性。這個JSON


{

  "status": true,

  "message": "some message"

}

將映射到Person帶有status = true和的實例message = "some message"。


您可以在類、其字段或 getter 或 setter 上使用大量注釋來調整此行為。


關于 3:此行為取決于您使用的 JSON 序列化庫。廣泛使用的 Jackson 庫提供了@JsonIgnoreProperties注解。為此,其他庫可能有不同的注釋。



查看完整回答
反對 回復 2023-02-16
  • 1 回答
  • 0 關注
  • 92 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號