1. 程式人生 > 其它 >別告訴我你連阿里FastJson都不熟-->FastJson使用

別告訴我你連阿里FastJson都不熟-->FastJson使用

技術標籤:我的java系列javaspring

不滿大家說,我也不是很熟,所以記錄分享

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);
    }