[英]converting string to to Map in Java
我正在使用傑克遜Objectmapper將對象轉換為字符串並將其保存為varchar2到數據庫中。我的代碼是
AuditDataLog dataLog = new AuditDataLog();
ObjectMapper mapper = new ObjectMapper();
dataLog.setData(mapper.writeValueAsString(obj));
它作為Varchar2保存到數據庫中。但是當我從數據庫中檢索此值並想使用ObjectMapper將其轉換為Map時,它無法執行此操作。它給出了這樣的異常
"com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [map type; class java.util.HashMap"
這是我的代碼
Map map = mapper.readValue(obj,HashMap.class));
obj是數據庫值,它是string.this是我要從中轉換地圖的字符串。
"\"MerOrder\":{\"cusAccPartyId\":\"4632\",\"cusAccParty\":{\"fullName\":\"Kariban\"},\"merAccPartyId\":\"4800\",\"merAccParty\":{\"fullName\":\"Golam Sarwer\"},\"season\":\"a455\",\"tfReceiveDate\":\"26 Apr 2017\",\"styleName\":\"a123\",\"styleNo\":\"s345\",\"sizeRange\":\"1\",\"merVariantValue\":{\"name\":\"XL-XS\"}}"
我該怎么辦??
之所以失敗是因為您要反序列化的String
不是有效的json
,因此需要將其包裝在花括號中才能使其成為有效的json
。 下面應該可以正常工作:
String s = "\"MerOrder\":{\"cusAccPartyId\":\"4632\",\"cusAccParty\":{\"fullName\":\"Kariban\"},\"merAccPartyId\":\"4800\",\"merAccParty\":{\"fullName\":\"Golam Sarwer\"},\"season\":\"a455\",\"tfReceiveDate\":\"26 Apr 2017\",\"styleName\":\"a123\",\"styleNo\":\"s345\",\"sizeRange\":\"1\",\"merVariantValue\":{\"name\":\"XL-XS\"}}";
ObjectMapper mapper = new ObjectMapper();
HashMap value = mapper.readValue("{" + s + "}", HashMap.class);
System.out.println(value);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.