我想从json字符串获取javabean。 javabean包含一个映射,其中key作为一个javabean,值作为javabean。但我在网上得到了以下错误 TestBean testBean2 = gson.fromJson(json,new TestBean()。getClass());
我正在使用谷歌gson。 请帮我解决这个问题。
public class Test
{
public static void main(String[] args)
{
Map<ProductBean, OfferBean> duplicateOfferMap = new HashMap<ProductBean, OfferBean>(0);
ProductBean productBean = new ProductBean();
OfferBean offerBean = new OfferBean();
duplicateOfferMap.put(productBean, offerBean);
TestBean testBean1 = new TestBean();
testBean1.setDuplicateOfferMap(duplicateOfferMap);
Gson gson = new GsonBuilder().setPrettyPrinting ().disableHtmlEscaping ().create ();
String json = gson.toJson(testBean1, new TestBean().getClass());
TestBean testBean2 = gson.fromJson(json, new TestBean().getClass());
}
}
public class TestBean
{
private Map<ProductBean, OfferBean> duplicateOfferMap = new HashMap<ProductBean, OfferBean>(0);
public Map<ProductBean, OfferBean> getDuplicateOfferMap() {
return duplicateOfferMap;
}
public void setDuplicateOfferMap(Map<ProductBean, OfferBean> duplicateOfferMap) {
this.duplicateOfferMap = duplicateOfferMap;
}
}
答案 0 :(得分:0)
尝试
String json = gson.toJson(testBean1, TestBean.class);
左右
Type myType= new TypeToken<MyBean>() {}.getType();
然后
String json = gson.toJson(testBean1, myType);