1.新建動態web項目
導入fastjson的jar(百度下載)
2.代碼
package cn.ma.test.fastjson;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import org.junit.Test;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.serializer.SimplePropertyPreFilter;
import cn.ma.test.domian.User;
public class TestFastJson {
/**
* 1.將對象轉化爲json格式
*
* @Title: Test1
* @Description:
* @return
* @return String
* @throws
* 效果:{"age":12,"id":"47d64366-e4b8-4972-afe5-42a04d881e6e","name":"張三"}
*/
@Test
public void Test1(){
User user = new User();
user.setId(UUID.randomUUID().toString());
user.setName("張三");
user.setAge(12);
String UserJson = JSONObject.toJSONString(user);
System.out.println(UserJson);
}
/**
* 2.將list轉化爲json格式
* @Title: test2
* @Description:
* @return void
* @throws
*/
//2.1 第一種 list集合中直接放的是對象 對象沒有屬性
//效果 ["張三","李四","王五"]
@Test
public void test2(){
List<Object> list = new ArrayList<Object>();
list.add("張三");
list.add("李四");
list.add("王五");
String str = JSONObject.toJSONString(list);
System.out.println(str);
}
//2.2.第二種 list集合中直接放的是對象 對象有屬性
//效果 [{"age":12,"id":"19b429d4-2092-4bfa-9520-4c1d78d2a4af","name":"小王"},{"age":13,"id":"eb754bf9-a79c-4332-aa08-ffcf8ab08541","name":"小馬"},{"age":14,"id":"e7b270bd-df41-495e-a4bc-350e09179729","name":"小楊"}]
@Test
public void test3(){
List<User> list = new ArrayList<User>();
User user = new User();
user.setId(UUID.randomUUID().toString());
user.setName("小王");
user.setAge(12);
User user2 = new User();
user2.setId(UUID.randomUUID().toString());
user2.setName("小馬");
user2.setAge(13);
User user3 = new User();
user3.setId(UUID.randomUUID().toString());
user3.setName("小楊");
user3.setAge(14);
//將user對象方法 list集合中
list.add(user);
list.add(user2);
list.add(user3);
String jsonStri = JSONObject.toJSONString(list);
System.out.println(jsonStri);
}
/**
* 3. 將map 轉化爲json格式
* @Title: test4
* @Description:
* @return void
* @throws
*/
//3.1 簡單的map 轉化爲json
// 效果 {"age":13,"id":"c17b81e7-df55-42ec-8d1d-da4431729e3b","name":"小美"}
@Test
public void test4(){
Map<String, Object> map = new HashMap<String,Object>();
map.put("id", UUID.randomUUID().toString());
map.put("name", "小美");
map.put("age", 13);
String jsonMap = JSONObject.toJSONString(map);
System.out.println(jsonMap);
}
//3.2 複雜的map 轉化爲json
// 效果 {"data":{"age":13,"id":"cc7d5734-1619-4f05-90f0-1d742712c1fe","name":"小美"},"msg":"操作成功","status":"101"}
@Test
public void test5(){
Map<String, Object> map = new HashMap<String,Object>();
Map<String, Object> map2 = new HashMap<String,Object>();
map2.put("id", UUID.randomUUID().toString());
map2.put("name", "小美");
map2.put("age", 13);
map.put("status", "101");
map.put("msg", "操作成功");
map.put("data", map2);
String jsonMap = JSONObject.toJSONString(map);
System.out.println(jsonMap);
}
/**
* 4.fastjson 過濾 不需要的 字段
* SimplePropertyPreFilter filter = new SimplePropertyPreFilter(TTown.class, "id","townname");
* 效果 [{"name":"小王"},{"name":"小馬"},{"name":"小楊"}]
*/
@Test
public void test6(){
List<User> list = new ArrayList<User>();
User user = new User();
user.setId(UUID.randomUUID().toString());
user.setName("小王");
user.setAge(12);
User user2 = new User();
user2.setId(UUID.randomUUID().toString());
user2.setName("小馬");
user2.setAge(13);
User user3 = new User();
user3.setId(UUID.randomUUID().toString());
user3.setName("小楊");
user3.setAge(14);
//將user對象方法 list集合中
list.add(user);
list.add(user2);
list.add(user3);
SimplePropertyPreFilter filter = new SimplePropertyPreFilter(User.class, "name"); //只保留name字段
String jsonStri = JSONObject.toJSONString(list,filter);
System.out.println(jsonStri);
}
/**
* 5.
* fastjson生成json時Null屬性不顯示的解決方法
* @Title: test7
* @Description:
* @return void
* @throws
*/
@Test
public void test7(){
Map<String, Object> map = new HashMap<String,Object>();
map.put("id", UUID.randomUUID().toString());
map.put("name", "小美");
map.put("age", 13);
map.put("desc", null);
String jsonMap = JSONObject.toJSONString(map,SerializerFeature.WriteMapNullValue);
System.out.println(jsonMap);
}
/**
* 6. 將時間轉化爲json格式(沒啥用)
* @Title: test8
* @Description:
* @return void
* @throws
*/
@Test
public void test8(){
Date date = new Date();
String time = JSONObject.toJSONStringWithDateFormat(date, "yyyy-MM-dd HH:mm:ss",SerializerFeature.WriteDateUseDateFormat);
System.out.println(time);
}
}