一、json字符串的数据解析
1.json字符串 ---> JSONObject或者JSONArray【好处就是当你没有bean的model类时,可以直接获取相关数据】
Object parse(String text)【这是下面2个方法的合集,是大招!】
JSONObject parseObject(String text)
JSONArray parseArray(String text)
2.json字符串 ---> bean对象【好处是如果你有model,你可以解析为java对象然后继续操作】
T parseObject(String text, Class clazz) //一个bean对象的解析生成
List parseArray(String text, Class clazz) //多个bean对象的解析生成
二、java对象的json格式化
1.bean对象转json字符串
String toJSONString(Object object)
String toJSONString(Object object, boolean prettyFormat)
2.java对象转换为JSONObject或者JSONArray
【是大招,单个bean对象能转,list集合也能转】,有了这一步,再来个toString就ok了。
Object toJSON(Object javaObject);
3.fastJSON 直接formmate date
实例:JSON.toJSONString(resultMap,SerializerFeature.WriteDateUseDateFormat);
代码实例:
@Test
public void testname() throws Exception {
Map map = new HashMap<>();ArrayListlist = new ArrayList<>();
list.add("呵呵");
list.add("哥哥");
map.put("id", "681274129");
map.put("cats",list);
//将字符串转成JSONObject,不可以直接toString来转成josn字符串
JSONObject jsonMap = JSON.parseObject(JSON.toJSONString(map));
System.out.println(jsonMap.get("id"));
//拿出jsonArray 并遍历
JSONArray cats = jsonMap.getJSONArray("cats");
/*for (Object o : cats) {
System.out.println((String)o);
}*/
for (int i = 0; i < cats.size(); i++) {
String o = (String) cats.get(i);
System.out.println(o);
}
Object json = JSON.toJSON(map.toString());
//不可以直接toString来转成josn字符串,虽然打印出来的字符串都是一样的
//System.out.println(map.toString());
// 这一段代码会报错JSON.parseObject(map.toString());
System.out.println(json);
}