![](/img/trans.png)
[英]Is it possible to have asymmetric serialization and de-serialization using Jackson JSON?
[英]JSON de-serialization using jackson
我有一個要反序列化為java對象的JSON。 我嘗試過但未能成功。 非常感謝有人幫助。 我正在錯誤以下。
ObjectMapper mapper = new ObjectMapper();
mapper.enable(DeserializationFeature.ACCEPT_SINGLE_VALUE_AS_ARRAY);
// Note : vairable 'body' is the JSON string which I've shared below.
RpcResponse rs = mapper.readValue(body, RpcResponse.class);
線程“主”中的異常com.fasterxml.jackson.databind.exc.MismatchedInputException:無法從START_ARRAY令牌中反序列化
Result
實例
{
"error": null,
"id": "12345",
"result": {
"inventory": [{
"history": [{
"when": "2012-08-30T07:28:51Z",
"changes": [{
"removed": "",
"added": "1",
"field_name": "qty"
},
{
"removed": "normal",
"added": "major",
"field_name": "popularity"
}],
"id": 474599,
"alias": null
}]
}
}
這是java類
public class RpcResponse {
private String error;
private String id;
private Map<String, Result> result;
public String getError() {
return error;
}
public void setError(String error) {
this.error = error;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public Result getResult() {
return result;
}
public void setResult(Result result) {
this.result = result;
}
}
public class Result {
private Map<String, List<Inventory>> inventory;
public Map<String, List<Inventory>> getBugs() {
return inventory;
}
public void setBugs(Map<String, List<Inventory>> inventory) {
this.inventory = inventory;
}
}
public class Inventory {
private String id;
private String alias;
private Map<String, List<History>> history;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public Map<String, List<History>> getHistory() {
return history;
}
public void setHistory(Map<String, List<History>> history) {
this.history = history;
}
}
public class History {
private String who;
private String when;
private Map<String, Changes> changes;
public String getWho() {
return who;
}
public void setWho(String who) {
this.who = who;
}
public String getWhen() {
return when;
}
public void setWhen(String when) {
this.when = when;
}
public Map<String, Changes> getChanges() {
return changes;
}
public void setChanges(Map<String, Changes> changes) {
this.changes = changes;
}
}
在“ RCP響應”中,
private Map<String, Result> result;
應該只是
private Result result;
結果,
private Map<String, List<Inventory>> inventory;
應該
private List<Inventory> inventory;
在庫存中
private Map<String, List<History>> history;
應該
private List<History> history;
在歷史記錄中, Map<String,Changes>
應該是Collection<Changes>
,等等
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.