fastjson 学习笔记
依赖:
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.3</version>
</dependency>
//fast json 学习笔记;jdk1.7
// http://www.jianshu.com/p/4cab1e59befb
// http://zyjustin9.iteye.com/blog/2020533
@Test
public void testJsonToMap() {
String json = "{\"pwd\":\"123\",\"username\":\"shan\",\"heart\":{\"name\":\"bearHeart\",\"size\":100,\"weight\":100.22},\"token\":\"shanhaha\",\"ip\":\"localhost\"}";
Map<String, Object> map = JSON.parseObject(json, HashMap.class);
System.out.println(map.get("username"));
//获取 MAP 中的存储对象 heart
Object heartJson = map.get("heart");
System.out.println(heartJson instanceof JSONObject); //map 中取出的对象现在是 JSONObject 形式
Heart heart = JSON.parseObject(heartJson.toString(), Heart.class); //转换成 Heart 对象
System.out.println(heart.getName());
System.out.println(map);
}
@Test
public void testMapToJson() {
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", "shan");
map.put("pwd", "123");
map.put("ip", "localhost");
map.put("token", "shanhaha");
Heart heart = new Heart("bearHeart", 100, 100.22);
map.put("heart", heart);
String json = JSON.toJSONString(map);
System.out.println(json);
}
@Test
public void testListToJson() {
List<Object> list = new ArrayList<Object>();
list.add("aaa");
list.add("bbb");
list.add("ccc");
Heart heart = new Heart("bearHeart", 100, 100.22);
list.add(heart);
String json = JSONArray.toJSONString(list,SerializerFeature.UseSingleQuotes);
System.out.println(json);
}
@Test
public void testJsonToList() {
String json = "[\"aaa\",\"bbb\",\"ccc\",{\"name\":\"bearHeart\",\"size\":100,\"weight\":100.22}]";
List<Object> list = JSON.parseObject(json, ArrayList.class);
for (Object o : list) {
if (o instanceof JSONObject) {
JSONObject jsonObject = ((JSONObject) o);
String hearJson = jsonObject.toJSONString();
Heart heart = JSON.parseObject(hearJson, Heart.class);
System.out.println(heart.getWeight());
} else {
System.out.println(o.toString());
}
}
}
@Test
public void testDate(){
Date date = new Date();
System.out.println(JSON.toJSONString(date));
System.out.println(JSON.toJSONString(date,SerializerFeature.WriteDateUseDateFormat));
System.out.println(JSON.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss.SSS"));;
}
@Test
public void testWriteClass(){
//SerializerFeature.WriteClassName 使用这个特性能够使得反序列化时不至于类型信息丢失。
HashMap<String, Object> map = new HashMap<String, Object>();
map.put("username", "shan");
map.put("pwd", "123");
map.put("ip", "localhost");
map.put("token", "shanhaha");
Heart heart = new Heart("bearHeart", 100, 100.22);
map.put("heart", heart);
String json = JSON.toJSONString(map,SerializerFeature.WriteClassName);
System.out.println(json);
Map<String,Object> mm = JSON.parseObject(json, HashMap.class);
Heart hh = (Heart) mm.get("heart");
System.out.println(hh.getWeight());
}