解决方案 »

  1.   

    不知道有其他方法不。  "0" 或者 “1” 看作是  key
      

  2.   

    其实不一定非要用bean,用Gson本身的com.google.gson.internal.StringMap(可以把这个当成你的bean)就可以实现
    当然如果你非要用你自己的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());


    }
      

  3.   

    不用这么麻烦啊
    你再将string 转下嘛 Integer.valueOf()
                                        Long.valueOf()