到HashMap類我使用傑克遜JAX-RS處理如何映射動態JSON值POJO的
json的成員始終是一樣的,只有它的1名成員具有動態值..
這個充滿活力值可以只能是 「」 或JSON對象
JSON可能性1
{
"event":"test",
"eventInfo": ""
}
JSON possibi lity 2
{
"event" : "test",
"eventInfo" : {
"name" : "abc",
"last" : "def"
}
}
eventInfo值只能是 「」 或JSON
我嘗試這個JSON映射到MyBean.java
MyBean.java
public class MyBean{
private String event;
private Map<String, String> eventInfo = new HashMap<String, String>();
public String getEvent() {
return event;
}
public void setEvent(String event) {
this.event = event;
}
@JsonAnyGetter
public Map getEventInfo() {
return eventInfo;
}
@JsonAnySetter
public void setEventInfo(String name, String value) {
this.eventInfo.put(name, value);
}
}
的映射過程發生在MyService.java中
MyService.java
@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces("text/plain")
public String receiveClientStatus(MyBean status){
if(!status.getEventInfo().isEmpty()){
String last = status.getEventInfo().get("last").toString() ;
System.err.println(last);
}
return "ok";
}
傑克遜未能轉換JSON作爲展示上面MyBean.java
如何做到這一點?
原諒我的英語
感謝
setEventInfo方法接受字符串值。它應該是對象嗎? –
@AlexeyGavrilov我已經嘗試它作爲對象,但它也失敗 – user3852209
MyBean看起來沒問題。你如何調用receiveClientStatus?從瀏覽器? – skarist