[英]Convert String with json to List
我正在嘗試將 JSON 字符串(必須是列表)轉換為對象列表:
[
{
"paramName":"Content-Type",
"paramValue":"text/xml; charset\u003d\"utf-8\""
}
]
這是我的 Service.class:
String jSONString = new Gson().toJson(systemParams);
ObjectMapper mapper = new ObjectMapper();
List<A> map = (List<A>) mapper.readValue(jSONString, A.class);
這是我的模型:
@Data
@AllArgsConstructor
public class A {
String paramName;
String paramValue;
}
但我得到了例外:
無法反序列化
java.util.LinkedHashMap
實例
所以我嘗試了不同的方式:
A[] map = mapper.readValue(jSONString, A[].class);
我獲得了:
InvalidDefinitionException:無法構造
com.model.A
實例(不存在創建者,如默認構造):
更新:
我試圖改變 Service.class 為:
List<A> map = mapper.readValue(jSONString, new TypeReference<List<A>>(){});
仍然有一個例外:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 無法構造
com.model.A
實例(沒有創建者,如默認構造,存在):
所以我刪除了@AllArgsConstructor 注釋並手動添加了構造函數:
public A(String paramName, String paramValue) {}
仍然是一個例外:
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: 無法構造
com.model.A
實例(沒有創建者,如默認構造,存在):
我認為問題寫在錯誤中:嘗試在必須反序列化的類上定義一個空的構造函數。 我還認為要序列化類(因此,從字節到類的另一種方式)您必須實現可序列化的接口。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.