我试图找出如何更好地处理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是这样的:
checkout:
{
"cart": {
"$oid": "51f631cb84812abb04000006"
},
"shippingAddress" : "5h avenue - new york",
"billingAddress" : "5h avenue - new york"
}
cart:
{
"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开始创建一个checkout?
我的问题是我不知道如何在checkout&cart json中“爆炸”$ oid以创建结帐和购物车Java Bean:
-
有没有办法与 Jackson 自动完成?
-
或者我应该创建一种Interceptor来处理一个例如checkout json以便检索购物车然后执行映射到POJO?
( - 或者有第三种方式?)
非常感谢任何建议 .
2 回答
如果我理解正确,你可以做这样的事情(我正在使用Spring 3.2.3.RELEASE&Jackson 1.9.12) .
在您的applicationContext.xml中,您有:
你有Spring控制器,如下所示:
和三个POJO:
然后在您的HTML页面中,您可以执行以下操作:
至少对我来说 - 它有效:)
它足以返回控制器文件中的数据结构(模型) . JSON将根据模型中的结构自动生成 . 看看这里例如:http://www.mkyong.com/spring-mvc/spring-3-mvc-and-json-example/(第3节 - 控制器,然后,5 - 结果)