1. 程式人生 > >JSON字串轉javabean-net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map

JSON字串轉javabean-net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map

會報錯:MorphDynaBean cannot be cast to java.util.Map

    在JSONObject.toBean的時候如果轉換的類中有集合,可以先定義Map<String, Class> classMap = new HashMap<String, Class>();在classMap中put你要轉換的類中的集合名,像:classMap.put("teachers", Teacher.class);然後在toBean()的時候把引數加上, 像:Student student=(Student) JSONObject.toBean(str, Student.class, classMap);

舉例:

Map<String, Object> result = new HashMap<String, Object>();

result.put("code", response.getStatus());
			result.put("total", sdoclist.getNumFound());
			System.out.println("返回結果數:"+sdoclist.getNumFound());
			result.put("costTime", time);
			result.put("query", getQueryCondition());
			ArrayList<Map<String, Object>> resultList = new ArrayList<Map<String, Object>>();
			result.put("result", resultList);
			for (int i = 0; i < sdoclist.size(); i++) {
				Map fieldMap = new HashMap();
				SolrDocument sdoc = sdoclist.get(i);
				Collection names = sdoc.getFieldNames();
				Iterator itr = names.iterator();
				while (itr.hasNext()) {
					String name = (String) itr.next();
					Object value = sdoc.getFieldValue(name);
					fieldMap.put(name, value);
				}
				resultList.add(fieldMap);
			}
儲存到redis:
JsonConfig cfg = new JsonConfig();
		cfg.registerJsonValueProcessor(java.util.Date.class,new DateJsonValueProcessor("yyyy-MM-dd HH:mm:ss"));
		JSONObject json = JSONObject.fromObject(result,cfg); 
redisService.setex(0,searchCondition, 3600*48,json.toString());//有效期2天

從redis取出來:將json的string轉化為bean

 Map<String, Class> classMap = new HashMap<String, Class>();  
		 classMap.put("result", Map.class); //針對result這個key對應的vallue是ArrayList型別,
		 //ArrayList中的儲存的是Map型別,所以classMap.put("result", Map.class);而不是classMap.put("result", ArrayList)
	 HashMap<String , String >  rmap  = new HashMap<String, String>();
		 Object  obj = JSONObject.toBean(JSONObject.fromObject(result_q),HashMap.class,classMap);
		 Map<String,Object> map =  (HashMap<String, Object>) obj;


相關推薦

JSON字串javabean-net.sf.ezmorph.bean.MorphDynaBean cannot be cast to java.util.Map

會報錯:MorphDynaBean cannot be cast to java.util.Map     在JSONObject.toBean的時候如果轉換的類中有集合,可以先定義Map<String, Class> classMap = new Hash

Exception in thread "main" java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be

Exception in thread "main" java.lang.ClassCastException: net.sf.ezmorph.bean.MorphDynaBean cannot be cast to com.zzxy.common.util.msg.MsgObject &nbs

JSON字串javabeanMorphDynaBean cannot be cast to ……

 在json字串轉java bean時,一般的物件,可以直接轉,如:一個學生類,屬性有姓名、年齡等 Java程式碼   public class Student implements java.io.Serializable{       /**       *

java後臺接收json資料,報錯com.alibaba.fastjson.JSONObject cannot be cast to xxx

  從前臺接收json封裝的list資料,在後臺接收時一直報錯,com.alibaba.fastjson.JSONObject cannot be cast to xxx,   使用這種方式接收可以接收 1 @RequestMapping(value = "/insertUser", method

關於sun.net.www.protocol.http.HttpURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection

sun.net.www.protocol.http.HttpURLConnection cannot be cast to javax.net.ssl.HttpsURLConnection 解決方法: 報錯的寫法:URL realUrl = new URL(url);

java.lang.ClassCastException: xxx.bean.XXX cannot be cast to xxx.bean.YYY

java.lang.ClassCastException: com.hahah.atcrowdfunding.bean.User cannot be cast to com.hahah.atcrowdfunding.bean.Role result寫錯了,應該是re

Java中使用jsonjava.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher問題解決

ati error: 9.png .com emp clas system img blog 下面代碼: public static void main(String[] args) { JSONObject obj = new JSONO

JSON中,java.lang.NoClassDefFoundError: net/sf/ezmorph/Morpher問題解決

是因為需要的類沒有找到,一般,是因為少匯入了JAR包,使用JSON時,除了要匯入JSON網站上面下載的json-lib-2.4-jdk15.jar包之外,還必須有其它幾個依賴包:commons-beanutils.jar,commons-lang.jar,commons-

解決json字串java bean 幷包含日期且日期為空

1.解決json轉java bean,併成功讀取date JsonConfig jsonConfig = new JsonConfig(); JSONUtils.getMorpherRegistry(

json-lib首字母大寫的jsonjavabean

con proc 測試 rjava log nbsp oid print reat 依賴jar: commons-beanutils-1.9.3.jar? commons-collections-3.1.jar commons-lang-2.4.jar commons-lo

json字串json物件的四種方式及對json字串的處理方式

1. 將json字串轉化為json物件 a. 方案一:jquery自帶的$.parseJSON函式 <script> var jsonstr="{\"id\":\"1\",\"name\":\"jack\"}"; var obj=$.parseJSON(jsonstr);

java json字串list

 json字串轉list maven引入jar     <dependency>               <groupId>

json字串java實體類

本文參考自大神部落格:點選開啟連結 一、json強轉實體類 1.實體類 package test; public class PassPortForLendsEntity { private String passportid; private

小程式頁面跳,資料傳遞,json字串物件並使用

小程式頁面跳轉,資料傳遞,json字串轉物件並使用 1.新建一個資料夾和page,隨便取名,我這裡是qrcontent,如下: 2.頁面跳轉並傳遞資料 index.js跳轉qrcontent.js,在index.js方法中新增程式碼: success: functi

js json字串物件

1.JSON.parse() 在網上找json字串轉物件的方法 主要是:JSON.parse(str) 但我發現這個方法有很大的侷限性 var jsonStr = '{"key":"value"}'; var jsonStr1 = '

json字串json物件,以及json物件json字串

json字串是一種能轉成json物件的字串(我自己理解的), 如  var MRWStr = '{name:WangHongxu,sex:man}', 把 MRW轉成json物件只需要 var MRWObj = JSON.parse(MRWStr); 就能得到 {n

golang json字串Golang物件

golang  json字串轉Golang物件 一、普通json字串轉Golang物件 import "github.com/ChengjinWu/gojson" func Test_json(t *testing.T) { data := `{"id":524

Java基礎】Json字串物件和List集合操作

to今天發現專案中需要拿到對接系統中傳值的Json,需要轉換成List集合。回顧下Json字串的操作,寫了個測試。 public class JsonToUtil {     private  static final  Logger log = LoggerFactor

java json字串 List

 工具類 /** * 常用工具類 */ public class WebUtils { /** * json 轉 List<T> */ public static <T> List<T> jsonToList(

net.sf.ezmorph.Morpher問題解決

執行web專案,外部訪問Servlet報錯 找不到這個類:net.sf.ezmorph.Morpher   解決方法:複製這些servlet必要的jar包到WEB-INF資料夾下lib資料夾裡面   jar包下載連結:https://download.c