[英]Get JSON data from a request and craft a JSON response using Java Jersey and Jackson
I'm a beginner trying to learn about RESTful API in Java. 我是一个初学者,试图学习Java中的RESTful API。 I have created a Dynamic Web project in Eclipse and tried to receive JSON data in request.
我在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+"}";
}
}
In this code, I have tried to create a class User which only have one attribute name. 在这段代码中,我尝试创建一个仅具有一个属性名称的类User。 I'm trying to send the name as JSON in request and retrieve the name from JSON.
我正在尝试在请求中将名称作为JSON发送并从JSON检索名称。
HTTP Status 500 - javax.ws.rs.ProcessingException: Error deserializing object from entity stream error.
HTTP状态500-javax.ws.rs.ProcessingException:从实体流中反序列化对象时出错。 Can anyone tell me what's wrong with my code?
谁能告诉我我的代码有什么问题吗?
Thanks in advance. 提前致谢。
Edit: Import section is 编辑:导入部分是
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;
Try removing all the xml tags from your POJO and run. 尝试从POJO中删除所有xml标记并运行。
Like this: 像这样:
class User{
private String name;
public void setName(String s) {
this.name = s;
}
public String getName() {
return name;
}
public String toString(){
return "{\"name\": "+name+"}";
}
}
Request JSON: 要求JSON:
{"name" : "Your Name"}
Hope it helps. 希望能帮助到你。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.