JSONへのJavaオブジェクト

初めに、ObjectMapperはジャクソンのターンを使用するように、各JSONオブジェクトをモデル化するために、そのネストされたJSON 4階ならば、あなたは4つのJavaクラスを記述する必要があり、また、異なるタイプのオブジェクトを置くことができ、リスト、いつかの変更を要求する場合は、内部クラスの束から宝(鉱山)を掘るする必要があります。
 
その後、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();

これは、1つはかなり良い書き込み、JSONの構造全体を見ることができ、とてもクールに見えました。しかし、そのようなアプローチは、JSON-libが使用するために、JSON-libには、中またはJava 1.7、上記の使用は推奨されません。この理由
 
だから、fastjsonに基づいて、彼はシンタックスシュガーとして、そのようなビルダーを書きました。

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構文を期待して、出てきません。

おすすめ

転載: blog.51cto.com/wikiou/2428360