栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Spring MVC Rest中处理JSon时如何处理POJO嵌套对象

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Spring MVC Rest中处理JSon时如何处理POJO嵌套对象

如果我对您的理解正确,则可以执行以下操作(我使用的是Spring 3.2.3.RELEASE&Jackson 1.9.12)。

在applicationContext.xml中,您具有:

<bean id="jacksonMessageConverter"          />    <bean >        <property name="messageConverters"> <list>     <ref bean="jacksonMessageConverter"/> </list>        </property>    </bean>

您具有如下所示的Spring控制器:

package test;import org.apache.log4j.Logger;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestBody;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;import org.springframework.web.bind.annotation.ResponseBody;@Controller@RequestMapping("/json")public class JsonParsingController {    private final static Logger log = Logger.getLogger(JsonParsingController.class);    @RequestMapping(value = "/cart.do", method = RequestMethod.POST, produces = "application/json; charset=utf-8")@ResponseBody public CartResponse handleCart(@RequestBody Cart cart) {    if (cart != null) {        log.debug(cart);    }    return new CartResponse("OK!");}}

和三个POJO:

package test;public class Cart {    private String id;    private Checkout checkoutID;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public Checkout getCheckoutID() {        return checkoutID;    }    public void setCheckoutID(Checkout checkoutID) {        this.checkoutID = checkoutID;    }    @Override    public String toString() {        return "Cart{" +     "id='" + id + ''' +     ", checkoutID=" + checkoutID +     '}';    }}package test;public class Checkout {    private String id;    private String billingAddress;    private String shippingAddress;    public String getId() {        return id;    }    public void setId(String id) {        this.id = id;    }    public String getBillingAddress() {        return billingAddress;    }    public void setBillingAddress(String billingAddress) {        this.billingAddress = billingAddress;    }    public String getShippingAddress() {        return shippingAddress;    }    public void setShippingAddress(String shippingAddress) {        this.shippingAddress = shippingAddress;    }    @Override    public String toString() {        return "Checkout{" +     "id='" + id + ''' +     ", billingAddress='" + billingAddress + ''' +     ", shippingAddress='" + shippingAddress + ''' +     '}';    }}package test;public class CartResponse {    private String result;    public CartResponse(String result) {        this.result = result;    }    public String getResult() {        return result;    }    public void setResult(String result) {        this.result = result;    }}

然后,您可以在HTML页面中执行以下操作:

<script language="Javascript" type="text/javascript">    $(document).ready(function () {        // Your data        var arr = {         id: '51f631cb84812abb04000006',         checkoutID: {  id: '123456789',  "shippingAddress" : "5h avenue - new york",  "billingAddress" : "5h avenue - new york"         }       };        $.ajax({ url: '/json/cart.do', type: 'POST', data: JSON.stringify(arr), contentType: 'application/json; charset=utf-8', dataType: 'json', async: false, success: function (msg) {     alert(msg.result); }        });    });</script>

至少对我来说-它有效:)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/466421.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号