技术开发 频道

JSON lib框架转换JSON XML不再困难!

  5、 将json字符串转换成Collection接口

private String json = "{\"address\":\"chian\",\"birthday\":{\"birthday\":\"2010-11-22\"},"+
"\"email\":\"email@123.com\",\"id\":22,\"name\":\"tom\"}";

@Test
public void readJSON2Collection() {
try {
fail(
"==============JSON Arry String >>> Java Collection ==================");
json
= "[" + json + "]";
jsonArray
= JSONArray.fromObject(json);
Collection
<Student> con = JSONArray.toCollection(jsonArray, Student.class);
System.out.println(con.size());
Object[] stt
= con.toArray();
System.out.println(stt.length);
fail(stt[
0].toString());

}
catch (Exception e) {
e.printStackTrace();
}
}

 

  刚才上面的将json转换成list提示该方法过时,这里有toCollection,可以用此方法代替toList方法;运行后结果如下:

==============JSON Arry String >>> Java Collection ==================
1
1
tom#
22#chian#2010-11-22#email@123.com

 

  6、 将json字符串转换成Map集合

@Test
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
0
相关文章