我模仿?JSONResult?自己寫了一個類,但是訪問的時候報錯:No?converter?found?for?return?value?of?type:?class?com.example.pojo.ResultOutput
是什么原因?看了半天代碼,看起來好像只有?formatToPojo?這個方法有點像格式化的邏輯,但是又找不到在哪里調(diào)用了這個方法。
該如何解決?
package?com.example.pojo;
import?com.fasterxml.jackson.databind.JsonNode;
import?com.fasterxml.jackson.databind.ObjectMapper;
import?java.util.List;
public?class?ResultOutput?{
????//?定義jackson?對象
????private?static?final?ObjectMapper?MAPPER?=?new?ObjectMapper();
????private?Integer?status;
????private?String?msg;
????private?Object?result;
????public?ResultOutput()?{}
????//?默認(rèn)的構(gòu)造函數(shù),傳三個參數(shù)
????public?ResultOutput(Integer?status,?String?msg,?Object?result)
????{
????????this.status?=?status;
????????this.msg?=?msg;
????????this.result?=?result;
????}
????//?默認(rèn)成功的構(gòu)造函數(shù)
????public?ResultOutput(Object?result)
????{
????????this.status?=?200;
????????this.msg?=?"success";
????????this.result?=?result;
????}
????public?static?ResultOutput?build(Integer?status,?String?msg,?Object?result)
????{
????????return?new?ResultOutput(status,?msg,?result);
????}
????public?static?ResultOutput?success(Object?result)
????{
????????return?new?ResultOutput(result);
????}
????public?static?ResultOutput?formatToPojo(String?jsonData,?Class<?>?clazz)
????{
????????try?{
????????????if?(clazz?==?null)?{
????????????????return?MAPPER.readValue(jsonData,?ResultOutput.class);
????????????}
????????????JsonNode?jsonNode?=?MAPPER.readTree(jsonData);
????????????JsonNode?data?=?jsonNode.get("result");
????????????Object?obj?=?null;
????????????if?(clazz?!=?null)?{
????????????????if?(data.isObject())?{
????????????????????obj?=?MAPPER.readValue(data.traverse(),?clazz);
????????????????}?else?if?(data.isTextual())?{
????????????????????obj?=?MAPPER.readValue(data.asText(),?clazz);
????????????????}
????????????}
????????????return?build(jsonNode.get("status").intValue(),?jsonNode.get("msg").asText(),?obj);
????????}?catch?(Exception?e)?{
????????????return?null;
????????}
????}
????public?static?ResultOutput?format(String?json)
????{
????????try?{
????????????return?MAPPER.readValue(json,?ResultOutput.class);
????????}?catch?(Exception?e)?{
????????????e.printStackTrace();
????????}
????????return?null;
????}
????public?static?ResultOutput?formatToList(String?jsonData,?Class<?>?clazz)?{
????????try?{
????????????JsonNode?jsonNode?=?MAPPER.readTree(jsonData);
????????????JsonNode?data?=?jsonNode.get("result");
????????????Object?obj?=?null;
????????????if?(data.isArray()?&&?data.size()?>?0)?{
????????????????obj?=?MAPPER.readValue(data.traverse(),
????????????????????????MAPPER.getTypeFactory().constructCollectionType(List.class,?clazz));
????????????}
????????????return?build(jsonNode.get("status").intValue(),?jsonNode.get("msg").asText(),?obj);
????????}?catch?(Exception?e)?{
????????????return?null;
????????}
????}
}
2018-11-28
翻了一下之前的問題。。發(fā)現(xiàn)是沒有定義 set 和 get。
真是神奇。。