我需要将从Solr检索到的数据转换为特定的类,我尝试了3种不同的方法,但每种方法都存在一些问题。
方法1:使用第三方库 - JSONUtil。
SolrDocument solrDocument = (SolrDocument) iterator.next();
String jsonString = JSONUtil.toJSON(solrDocument);
EventObject eventObject2 = gson.fromJson(jsonString, EventObject.class);
方法2:直接将solrDocument转换为JsonString。
String jsonString2 = gson.toJson(solrDocument);
EventObject eventObject3 = gson.fromJson(jsonString2, EventObject.class);
方法3:将solrDocument转换为JSONObject,然后转换为JsonString。
JSONObject object = new JSONObject(solrDocument);
String jsonStringFromJsonObject = object.toString();
EventObject eventObjectFromJsonObject = gson.fromJson(jsonStringFromJsonObject,
EventObject.class);
方法4:使用Java Bean
List<EventObject> EventObjects = response.getBeans(EventObject.class);
方法1的结果无法处理Date或ArrayList Type的字段。结果方法2,方法3和方法4都是一样的,他们处理所有领域的好,但是,ArrayList的领域仍是空白。