91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java Object to JSON

發布時間:2020-07-30 20:46:24 來源:網絡 閱讀:780 作者:wikiou 欄目:編程語言

一開始的時候,使用Jackson的ObjectMapper來轉,每個JSON對象都要建模,如果那個JSON嵌套了4層,就得寫4個Java Class,而且一個list里面還可以放不同類型的對象,要是哪天需求一改,就得從一堆class里面挖寶(雷)。使用Java的強類型對靈活的JSON對象建模,在現在多變的業務環境下,真的沒有什么優勢。

后來看到JDK里面有這么一個寫法:

 JsonObject value = Json.createObjectBuilder()
     .add("firstName", "John")
     .add("lastName", "Smith")
     .add("age", 25)
     .add("address", Json.createObjectBuilder()
         .add("streetAddress", "21 2nd Street")
         .add("city", "New York")
         .add("state", "NY")
         .add("postalCode", "10021"))
     .add("phoneNumber", Json.createArrayBuilder()
         .add(Json.createObjectBuilder()
             .add("type", "home")
             .add("number", "212 555-1234"))
         .add(Json.createObjectBuilder()
             .add("type", "fax")
             .add("number", "646 555-4567")))
     .build();

看著就很爽,一眼就可以看清整個JSON的結構,好寫好看。可是這種寫法,要用到json-lib,json-lib不建議用在1.7或以上的Java,原因在此。

于是基于fastjson,自己寫了一個這樣的builder,當作語法糖。

public class JsonObjectBuilder {
    private JSONObject obj = new JSONObject();
    public JsonObjectBuilder add(String key, Object value) {
        obj.put(key, value);
        return this;
    }
    public JSONObject build() {
        return obj;
    }
}
public class JsonArrayBuilder {
    private JSONArray array = new JSONArray();
    public JsonArrayBuilder add(Object item) {
        array.add(item);
        return this;
    }
    public JSONArray build() {
        return array;
    }
}
public class JsonBuilder {
    public static JsonObjectBuilder newObject() {
        return new JsonObjectBuilder();
    }
    public static JsonArrayBuilder newArray() {
        return new JsonArrayBuilder();
    }
}

使用示范:

JSONObject obj = JsonBuilder.newObject()
        .add("name", "Andy")
        .add("age", 28)
        .add("friends", JsonBuilder.newArray()
                .add(JsonBuilder.newObject()
                        .add("name", "Maggie")
                        .add("hobby", "hike")
                        .build())
                .add(JsonBuilder.newObject()
                        .add("name", "Tonny")
                        .add("city", "hongkong")
                        .build())
                .build())
        .build();

做是做出來了,但還不是我最終想要的東西,我最想要的是類似JavaScript的效果。

{
    "name": ${name},
    "friends": [
        {
            "name": ${friend}
        }
    ]
}

目前的Java還做不出來,期待Java語法的改進。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

视频| 凉城县| 大冶市| 健康| 宁乡县| 石阡县| 平定县| 辽中县| 靖江市| 绍兴市| 望奎县| 白山市| 泽库县| 祁连县| 贺州市| 湘乡市| 乌恰县| 麦盖提县| 大洼县| 汽车| 汝阳县| 昌都县| 久治县| 和顺县| 济南市| 仲巴县| 成安县| 包头市| 白银市| 泗水县| 太湖县| 桐柏县| 甘南县| 宁城县| 福海县| 托里县| 兴宁市| 山东省| 吉林省| 从江县| 天长市|