在Java REST风格的Web服务(javax.ws..rs。*)Jersey中接收JSON对象

我有json contentType到glassfish服务器,我有java restful web服务安装程序的问题。

我使用针从Node.js POST:

var options = { json: true, headers: {'Content-Type':'application/json'} } needle.post(base_url+'priorityList/',priorityList,options, function(err, resp, body){ }); 

并与jersey接受:

 @POST @Path("/priorityList/") @Consumes(MediaType.APPLICATION_JSON) //@Consumes("text/plain") @Produces(MediaType.APPLICATION_JSON) public JSONArray priorityList(JSONObject incomingJsonString)throws IOException { } 

它在glassfish服务器上给我这个错误:

 WARNING: StandardWrapperValve[com.mycompany.recommenderenginejava.ApplicationConfig]: Servlet.service() for servlet com.mycompany.recommenderenginejava.ApplicationConfig threw exception org.codehaus.jackson.map.exc.Unr`enter code here`ecognizedPropertyException: Unrecognized field "{"categories":["golf","banks"]}" (Class com.mycompany.recommenderenginejava.JSONObject), not marked as ignorable at [Source: org.glassfish.jersey.message.internal.EntityInputStream@4c0db744; line: 1, column: 43] (through reference chain: com.mycompany.recommenderenginejava.JSONObject["{"categories":["golf","banks"]}"]) at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53) at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267) at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673) 

这看起来应该是正确的格式,我明白了,并已经尝试了1000件事情来得到它的工作。

任何帮助是极大的赞赏

你需要发布com.mycompany.recommenderenginejava.JSONObject,如果你想要具体的build议,但答案是,JSON不匹配你试图parsing它的类。 JSON有一个字段(“类别”),在类定义中不作为公共字段或setter存在。