[英]Automatic JSON deserialization with Jackson
我是Jackson的新手,我有一個Web服務,期望通過HTTP POST請求傳遞JSON對象。 JSON對象將被映射到Java類以進行進一步處理。
所以我有這個:
@Path("/")
public class RestService {
@POST
@Consumes("application/json")
public String postAction(MyClass json) {
// ...
}
}
MyClass看起來像這樣:
public class MyClass {
protected String var1;
protected JSONArray var2;
}
關鍵是,var2是一個數組,其中保存JSONObjects(或為空)。 這些JSON對象應該映射到另一個類MySubClass,例如
public class MySubClass {
protected String subvar1;
}
因此,我們將通過POST傳入匹配的String,類似於有效的JSON對象:
{"var1": "x", "var2": [{"subvar1": "1"},{"subvar1": "2"}]}
問題是,每次崩潰都會出現如下錯誤消息:
string(419)“ HTTP / 1.1 400 Bad Request Date:Mon,26 Oct 2015 15:53:26 GMT內容類型:text / html連接:close服務器:Jetty(9.2.2.v20140723)org.codehaus.jackson。 map.JsonMappingException:無法從[源:HttpInputOverHTTP @ 2d6e16c7;第1行,第1545行]的START_ARRAY令牌中反序列化org.json.JSONArray實例(通過參考鏈:xyzMyClass [“ var2”])”
也許我現在太累了,無法發現錯誤...
我認為您需要MySubClass或JsonArray的列表。 因為在字符串中您具有:
"var2": [{"subvar1": "1"},{"subvar1": "2"}]}
這是一個集合。 因此,在您的MyClass中,您應該具有:
public class MyClass {
protected String var1;
protected List<.....> var2;
}
我希望這個能幫上忙!!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.