当前位置:编程学习 > JAVA >>

Gson的fromJson方法

Gson gson = new Gson();
Map<String, Object> map = new HashMap<String, Object>();
map = gson.fromJson(result,Map.class );

这段代码result是map转成的json格式
为什么现在我想把result转成map格式 就转不了? --------------------编程问答-------------------- --------------------编程问答-------------------- 别总用“转不了”这种模糊的词汇来描述问题。问题描述的这么模糊,说明你自己看的就很模糊,拿出来问也是浪费别人的时间。连问题都问不好,怎么能期待解决问题能力的提高? --------------------编程问答-------------------- --------------------编程问答-------------------- 说的好。我也遇到一个gson问题。
我从服务器返回的json字符串,我想转换成类。

public class JsonRPC_Response {    
 private String id;
 private Object error;
 private Object result;
}

但是result 这个元素,可能是字符串,也可能是一个类,根据不同的请求返回不同结构的类:
比如返回的字符串是:
"{
   "error":null,
   "id":"100",
   "result":{"records":[{"_id":null,"birth":null,"skin":null,"trainCount":null}],"total":0}
}"
如果result是一个字符串,我能用gson成功转换,
而如果是类,这样转换就会出错。

这个结构有点像是gson文档说的类的嵌套了,
但是每次返回都有error,id,result这个3个元素。有无办法一次转换成JsonRPC_Response类呢?



--------------------编程问答-------------------- 感觉JAVA里面的很多东西都很白痴。
连JSON这样的都搞不定,还开源个P啊 --------------------编程问答-------------------- map.class是不对的! --------------------编程问答--------------------
引用 5 楼 paulleder 的回复:
感觉JAVA里面的很多东西都很白痴。
连JSON这样的都搞不定,还开源个P啊

傻啦吧唧的玩意兒 --------------------编程问答-------------------- 你应该用 new TokenType<Map<you class>>(){}.getType.而不是Map.class --------------------编程问答-------------------- 8楼正确!up up up --------------------编程问答-------------------- s --------------------编程问答-------------------- 假如一个对象名为obj其中有N个属性,有Long,Integer型
用gson.fromJson(obj,new TypeToken<Map<String,Object>>(){}.getType());
转换成对象后,Integer等数据类型都被转成科学技术发类型了,我知道可以用BigDecimal转换,
请问gson能不能直接转换成Map的时候又指定类型??
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,