一段JSON,如何进行解析

从sFlow-rt提供的REST API得到了一段JSON数据,如何进行解析呢?
{
"17.ifInmulticastpkts": 0,
"17.ifindex": "17",
"17.ifindiscards": 0,
"17.ifinerrors": 0,
"17.ifinoctets": 0,
"17.ifinucastpkts": 0,
"17.ifoutdiscards": 0,
"17.ifouterrors": 0,
"17.ifoutoctets": 0,
"17.ifoutucastpkts": 0,
"17.ifspeed": 10000000000,
"17.iftype": "ethernetCsmacd",
"19.ifInmulticastpkts": 0,
"19.ifindex": "19",
"19.ifindiscards": 0,
"19.ifinerrors": 0,
"19.ifinoctets": 0,
"19.ifinucastpkts": 0,
"19.ifoutdiscards": 0,
"19.ifouterrors": 0,
"19.ifoutoctets": 0,
"19.ifoutucastpkts": 0,
"19.ifspeed": 10000000000,
"19.iftype": "ethernetCsmacd",
"21.ifInmulticastpkts": 0,
"21.ifindex": "21",
"21.ifindiscards": 0,
"21.ifinerrors": 0,
"21.ifinoctets": 0,
"21.ifinucastpkts": 0,
"21.ifoutdiscards": 0,
"21.ifouterrors": 0,
"21.ifoutoctets": 0,
"21.ifoutucastpkts": 0,
"21.ifspeed": 10000000000,
"21.iftype": "ethernetCsmacd",
"23.ifInmulticastpkts": 0,
"23.ifindex": "23",
"23.ifindiscards": 0,
"23.ifinerrors": 0,
"23.ifinoctets": 0,
"23.ifinucastpkts": 0,
"23.ifoutdiscards": 0,
"23.ifouterrors": 0,
"23.ifoutoctets": 0,
"23.ifoutucastpkts": 0,
"23.ifspeed": 10000000000,
"23.iftype": "ethernetCsmacd"
}
也就是每组数字对应的一个model,但是没有在JSON中分开,这样的JSON如何进行解析,谢谢各位大神。

[code="java"]
public class JSon2ModelTest {
public static void main(String[] args) {
Map map = new HashMap();
map.put("1.xx", "1xx");
map.put("1.yy", "1yy");
map.put("1.zz", "1zz");
map.put("2.xx", "2xx");
map.put("2.yy", "2yy");
map.put("2.zz", "2zz");
map.put("3.xx", "3xx");
map.put("3.yy", "3yy");
map.put("3.zz", "3zz");
String str=JSON.toJSON(map).toString();
Map m=JSON.parseObject(str, Map.class);
Set s=m.keySet();
Iterator it=s.iterator();
//缓存分组后的数据的map对象
Map> mm=new HashMap>();
//缓存分组后的数据的map对象的key
List listKey=new ArrayList();

    //初始化缓存的map对象开始
    List<String> listInit=new ArrayList<String>();
    String t = it.next(); 
    String initKey = t.substring(0,t.indexOf("."));
    listKey.add(initKey);
    listInit.add(t);
    mm.put(initKey, listInit);
    //初始化缓存的map对象结束
    for(;it.hasNext();){
        String str2 = it.next();
        String temp = str2.substring(0,str2.indexOf("."));
        if(mm.containsKey(temp)){
            mm.get(temp).add(str2);
        }else{
            List<String> ll = new ArrayList<String>();
            listKey.add(temp);
            mm.put(temp, ll);
        }
    }
}

}
[/code]

这是测试的代码,你可以参考一下

一个在线的json格式化视图工具,很方便:
http://www.bejson.com/go.php?u=http://www.bejson.com/jsonviewernew/

取出来后,再根据.进行分割再处理

JSONObject jo = new JSONObject(sFlow-rt);
String 17.ifInmulticastpkts= jo.getString("17.ifInmulticastpkts");
....
....
其他都一样
用 json-org.jar

转成Map对象,取出来keySet,然后根据条件将keySet分组,然后根据分组后的keySet从Map对象里获取值,组装成VO对象就好了呀