簡體   English   中英

從請求中獲取JSON數據,並使用Java Jersey和Jackson編寫JSON響應

[英]Get JSON data from a request and craft a JSON response using Java Jersey and Jackson

我是一個初學者,試圖學習Java中的RESTful API。 我在Eclipse中創建了一個動態Web項目,並嘗試在請求中接收JSON數據。

@Path("/test")
public class TestAPI {
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.APPLICATION_JSON)
    public String sayHello(User user) {
        String name = user.getName();
        return name;
    }
}


@XmlRootElement(name = "user")
@XmlAccessorType(XmlAccessType.FIELD)
class User{
    private String name;
    public User() {}
    @XmlElement
    public void setName(String s) {
        this.name = s;
    }

    public String getName() {
        return name;
    }
    public String toString(){
          return "{\"name\": "+name+"}";
       }
}

在這段代碼中,我嘗試創建一個僅具有一個屬性名稱的類User。 我正在嘗試在請求中將名稱作為JSON發送並從JSON檢索名稱。

HTTP狀態500-javax.ws.rs.ProcessingException:從實體流中反序列化對象時出錯。 誰能告訴我我的代碼有什么問題嗎?

提前致謝。

編輯:導入部分是

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;

嘗試從POJO中刪除所有xml標記並運行。

像這樣:

class User{
    private String name;
    public void setName(String s) {
        this.name = s;
    }

    public String getName() {
        return name;
    }
    public String toString(){
          return "{\"name\": "+name+"}";
       }
}

要求JSON:

{"name" : "Your Name"}

希望能幫助到你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM