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();
}
}
"\"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
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();
}
}
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
{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