Java中Json转Map方法

JavaJSONObject.toBean进行json字符串转换成Map集合

转换实例一

public void readJSON2Map() {
    try {
        fail("==============JSON Arry String >>> Java Map ==================");
        json = "{\"arr\":[\"a\",\"b\"],\"A\":{\"address\":\"address\",\"birthday\":{\"birthday\":\"2010-11-22\"}," + "\"email\":\"email\",\"id\":1,\"name\":\"jack\"},\"int\":1," + "\"B\":{\"address\":\"address\",\"birthday\":{\"birthday\":\"2010-11-22\"}," + "\"email\":\"email\",\"id\":1,\"name\":\"jack\"},\"name\":\"json\",\"bool\":true}";
        jsonObject = JSONObject.fromObject(json);
        Map < String,Class < ?>>clazzMap = new HashMap < String, Class < ?>>();
        clazzMap.put("arr", String[].class);
        clazzMap.put("A", Student.class);
        clazzMap.put("B", Student.class);
        Map < String,?>mapBean = (Map) JSONObject.toBean(jsonObject, Map.class, clazzMap);
        System.out.println(mapBean);

        Set < String > set = mapBean.keySet();
        Iterator < String > iter = set.iterator();
        while (iter.hasNext()) {
            String key = iter.next();
            fail(key + ":" + mapBean.get(key).toString());
        }
    } catch(Exception e) {
        e.printStackTrace();
    }
}

执行结果:

==============JSON Arry String >>> Java Map ==================
{A=jack#1#address#2010-11-22#email, arr=[a, b], B=jack#1#address#2010-11-22#email, int=1, name=json, bool=true}
A:jack#1#address#2010-11-22#email
arr:[a, b]
B:jack#1#address#2010-11-22#email
int:1
name:json
bool:true

转换实例二

public void json2map() {
    String json1 = "{'arr':['a','b'],'int':1,'name':'json','bool':true}";
    JSONObject jsonObject1 = JSONObject.fromObject(json1);
    Map typeMap1 = new HashMap();
    typeMap1.put("arr", String[].class);
    typeMap1.put("int", Integer.class);
    typeMap1.put("name", String.class);
    typeMap1.put("bool", Boolean.class);
    Map output1 = (Map) JSONObject.toBean(jsonObject1, Map.class, typeMap1);
    System.out.println("Map");
    System.out.println(output1.size());
    System.out.println(output1.get("name"));
    System.out.println(output1.get("arr"));
    String json2 = "{'k1':{'age':10,'sex':'男','userName':'xiapi1'},'k2':{'age':12,'sex':'女','userName':'xiapi2'}}";
    JSONObject jsonObject2 = JSONObject.fromObject(json2);
    Map < String,Class < ?>>typeMap2 = new HashMap < String,Class < ?>>();
    Map < String,Student > output2 = (Map < String, Student > ) JSONObject.toBean(jsonObject2, Map.class, typeMap2);
    System.out.println("Map<String,Student>");
    System.out.println(output2.size());
    System.out.println(output2.get("k1"));
}

执行结果:

Map
4
json
[a, b]
Map<String,Student>
2
net.sf.ezmorph.bean.MorphDynaBean@5b8827[{sex=男, age=10, userName=xiapi1}]


版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。