6

Spring MVC でネストされた Java オブジェクトの JSON シリアライゼーション/デシリアライゼーションをより適切に処理する方法を見つけようとしています。

私のドメインモデルは次のとおりです。

  public class Cart {
        private String id;
        private Customer customerID;
        private Checkout checkoutID;
        private List<CartProduct> itemCatalogList;

        *** ... getters & setters ... ***


    }

   public class ProductCart {
        private String sku;
        private String color;
        private String sizeBase
        private int qty;

        *** ... getters & setters ... ***


    }

    public class Checkout {
        private String id;
        private String billingAddress;
        private String shippingAddress;
        private Cart cartID;

        *** ... getters & setters ... ***


    }

私が考えていたJSONは次のようなものです:

チェックアウト:

{
  "cart": {
    "$oid": "51f631cb84812abb04000006"
  },

  "shippingAddress" : "5h avenue - new york",  
  "billingAddress" : "5h avenue - new york"
}

カート:

{
       "customer": {
      "$oid": "5174da574940368a9126e8dc"
      },
       "items_catalog": [
      {
        "sku": "00075161",
        "color": "ff99cc",
        "size_base": "IT_25",
        "qty": 3,
      },
      {
        "sku": "00075161",
        "color": "ff99cc",
        "size_base": "IT_27",
        "qty": 2,
      },
      {
        "sku": "00075161",
        "color": "ff99cc",
        "size_base": "IT_29",
        "qty": 1,
      }
}

これが実行可能なドメイン モデルと json ドキュメントであると仮定すると、Spring で JSON から開始するチェックアウトを作成するにはどうすればよいでしょうか?

私の問題は、チェックアウトとカートの Java Beans を作成するために、チェックアウトとカートの JSON で $oid を「分解」する方法がわからないことです。

  • ジャクソンで自動的に行う方法はありますか?

  • または、カートを取得して POJO へのマッピングを実行するために、チェックアウト json などを処理する一種のインターセプターを作成する必要がありますか?

(-または第 3 の方法はありますか?)

アドバイスありがとうございます。

4

2 に答える 2