別告訴我你連阿里FastJson都不熟-->FastJson使用
阿新 • • 發佈:2021-01-16
不滿大家說,我也不是很熟,所以記錄分享
FastJson
主要的三個類
-
JSONObject–>代表json物件—>Map
-
JSONArray–>json陣列–>List
-
JSON–>JSONObject與JSONArray的轉換
JSONObject 和 JSONArray 繼承了 JSON,所以說也可以直接使用兩者對 JSON 格式字串與 JSON 物件及 javaBean 之間做轉換,不過為了避免混淆我們還是使用 JSON。
想說的都在程式碼裡了,我先寫,你們隨意!!!
<dependency >
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.60</version>
</dependency>
demo演示
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Beauty {
private String name;
private Integer age;
}
public class AopTest {
private List<Beauty> list=new ArrayList<>();
@Before
public void setUp() {
Beauty lily = new Beauty("lily", 16);
list.add(lily);
list.add(new Beauty( "jenny",17));
list.add(new Beauty("luce",18));
}
@Test
public void test(){
List<Beauty> list=new ArrayList<>();
Beauty lily = new Beauty("lily", 16);
list.add(lily);
list.add(new Beauty("jenny",17));
list.add(new Beauty("luce",18));
//java物件轉Json字串
//list java物件-->json字串
System.out.println("list java物件-->json字串");
String str1 = JSON.toJSONString(list);
System.out.println(str1);
//BeanToArray 序列化功能
System.out.println(JSON.toJSONString(list, SerializerFeature.BeanToArray));
//java物件實體-->json字串
System.out.println("java物件實體-->json字串");
String str2 = JSON.toJSONString(lily);
System.out.println(str2);
//json-->java物件
System.out.println("json-->java物件");
Beauty beauty = JSON.parseObject(str2, Beauty.class);
System.out.println(beauty);
//java物件-->java物件
System.out.println("java物件-->java物件");
JSONObject j=(JSONObject) JSON.toJSON(lily);
System.out.println(j.get("name"));
//json物件-->json物件
System.out.println("json物件-->json物件");
Beauty beautiful = JSON.toJavaObject(j, Beauty.class);
System.out.println(beautiful);
}
@Test
public void test2(){
JSONArray jsonArray = new JSONArray();
for (int i = 0; i < 2; i++) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("AGE",12);
jsonObject.put("NAME","Lily");
jsonArray.add(jsonObject);
}
System.out.println(jsonArray);
}
}
拓展
使用 ContextValueFilter 配置 JSON 轉換
@Test
public void givenContextFilter_whenJavaObject_thanJsonCorrect() {
ContextValueFilter valueFilter = new ContextValueFilter () {
public Object process(
BeanContext context, Object object, String name, Object value) {
if (name.equals("age")) {
return "NOT TO DISCLOSE";
}
if (value.equals("jenny")) {
return ((String) value).toUpperCase();
} else {
return null;
}
}
};
String jsonOutput = JSON.toJSONString(list, valueFilter);
System.out.println(jsonOutput);
}