Gson如何解析数字标识的Json数组? gsonjsonjson数组 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 不知道有其他方法不。 "0" 或者 “1” 看作是 key 其实不一定非要用bean,用Gson本身的com.google.gson.internal.StringMap(可以把这个当成你的bean)就可以实现当然如果你非要用你自己的bean的话,那么剩下的就是把StringMap转换为你自己的bean就可以了参考下面的代码beanimport java.util.Map;public class MyBean { private String start_time; private String end_time; private Map<String,Map<String,String>> map; public String getStart_time() { return start_time; } public void setStart_time(String start_time) { this.start_time = start_time; } public String getEnd_time() { return end_time; } public void setEnd_time(String end_time) { this.end_time = end_time; } public Map<String, Map<String, String>> getMap() { return map; } public void setMap(Map<String, Map<String, String>> map) { this.map = map; } }解析的main方法public static void main(String[] args) throws UnsupportedEncodingException { MyBean bean = new MyBean(); Gson gson = new Gson(); Map<String,Map<String,String>> beanMap=new HashMap<String,Map<String,String>>(); String strJson = "{'0': {'id': '84','title': '1号男鞋','price': '180'}," + "'1': {'id': '85','title': '2号男鞋','price': '280'}," + "'start_time': '2014-12-22','end_time': '2014-12-28'}"; Object obj=gson.fromJson(strJson, Object.class); StringMap objArray = (StringMap)obj; Iterator<String> iterator=objArray.keySet().iterator(); while(iterator.hasNext()){ String key=iterator.next(); Object value_obj = (Object)objArray.get(key); if(value_obj instanceof StringMap){ StringMap stringMap = (StringMap)value_obj; Map<String,String> contentMap = new HashMap<String,String>(); contentMap.putAll(stringMap); beanMap.put(key, contentMap); } else if(value_obj instanceof String){ String value = (String)value_obj; if(key.equals("start_time")){ bean.setStart_time(value); } if(key.equals("end_time")){ bean.setEnd_time(value); } } else{ //TODO …… } bean.setMap(beanMap); } System.out.println(bean.getMap()); System.out.println(bean.getStart_time()); System.out.println(bean.getEnd_time()); } 不用这么麻烦啊你再将string 转下嘛 Integer.valueOf() Long.valueOf() jdk加上tomcat就能开发简单的web程序了吗 struts标签 关于hibernate中必用的10个JAR包的问题/// validator使用问题 那个webservice的兼容性比较好? JAVA 数据库连接池高并发 那位高人可以告诉我,Javabean自行关闭时,是否关闭作为成员变量的数据库连接? 求教!!如何在servlet或者jsp接收http的回应? 谁给个用JDOM创建新的XML文档的例子吧!100分 UNION ALL 的时候由于类型不一致返回地址 oracle动态sql问题求解,希望大牛指点指点 很简单的java代码!我刚入门!repaint为何很久才能显示
当然如果你非要用你自己的bean的话,那么剩下的就是把StringMap转换为你自己的bean就可以了参考下面的代码
bean
import java.util.Map;public class MyBean { private String start_time;
private String end_time;
private Map<String,Map<String,String>> map; public String getStart_time() {
return start_time;
} public void setStart_time(String start_time) {
this.start_time = start_time;
} public String getEnd_time() {
return end_time;
} public void setEnd_time(String end_time) {
this.end_time = end_time;
} public Map<String, Map<String, String>> getMap() {
return map;
} public void setMap(Map<String, Map<String, String>> map) {
this.map = map;
}
}
解析的main方法
public static void main(String[] args) throws UnsupportedEncodingException {
MyBean bean = new MyBean();
Gson gson = new Gson();
Map<String,Map<String,String>> beanMap=new HashMap<String,Map<String,String>>();
String strJson = "{'0': {'id': '84','title': '1号男鞋','price': '180'}," +
"'1': {'id': '85','title': '2号男鞋','price': '280'}," +
"'start_time': '2014-12-22','end_time': '2014-12-28'}";
Object obj=gson.fromJson(strJson, Object.class);
StringMap objArray = (StringMap)obj;
Iterator<String> iterator=objArray.keySet().iterator();
while(iterator.hasNext()){
String key=iterator.next();
Object value_obj = (Object)objArray.get(key);
if(value_obj instanceof StringMap){
StringMap stringMap = (StringMap)value_obj;
Map<String,String> contentMap = new HashMap<String,String>();
contentMap.putAll(stringMap);
beanMap.put(key, contentMap);
}
else if(value_obj instanceof String){
String value = (String)value_obj;
if(key.equals("start_time")){
bean.setStart_time(value);
}
if(key.equals("end_time")){
bean.setEnd_time(value);
}
}
else{
//TODO ……
}
bean.setMap(beanMap);
}
System.out.println(bean.getMap());
System.out.println(bean.getStart_time());
System.out.println(bean.getEnd_time());
}
你再将string 转下嘛 Integer.valueOf()
Long.valueOf()