json在springMVC中的使用

json(javascript Object Notation)是一种轻量级的数据交换格式。它是一种基于EMCAScript规范的子集。

格式

其对象表示为键值对。
数据由逗号分隔。
花括号表示对象。
方括号表示数组。


JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 “” 包裹,使用冒号 : 分隔,然后紧接着值:
1
{“firstName”: “John”}
这很容易理解,等价于这条 JavaScript 语句:
1
{firstName: “John”}
用json来表示对象数组,示例:
[
{
“from”:”小王”,
“to”:”周”,
“content”:”好好工作!”,
“type”:1
},
{
“from”:”周”,
“to”:”小王”,
“content”:”我会加油的,争取早日回到中南海”,
“type”:2
}
]
在springMVC中,json是一种数据的呈现方式,使用ViewResolver的方式,就可以处理不同的数据呈现格式。ContentNegotiatingViewResolver
以下是ContentNegotiatingViewResolver在spring中的配置

<!-- 一个xml中可以配置多个ViewResolver,使用order属性排序。    InternalSourceViewResolver放在最后-->
<bean  
    class="org.springframework.web.servlet.view.ContentNegotiatingViewResolver">  
<!-- 设置为true以忽略对Accept Header的支持-->  
<property name="ignoreAcceptHeader" value="true" />  
<!-- true,开启扩展名支持,false关闭支持 -->  
<property name="favorPathExtension" value="false" />  
<!-- 用于开启 /userinfo/123?format=json的支持 -->  
<property name="favorParameter" value="true" />  
<property name="order" value="1"/>
<!-- 
    在没有扩展名和参数时即: "/user/1" 时的默认展现形式 
-->  
<property name="defaultContentType" value="text/html" />  

<!--  
    参数值至mimeType的映射,即 /rest?format=json json是key,application/json就是value  
    暂时只支持json和xml  
-->  
<property name="mediaTypes">  
    <map>  
        <entry key="json" value="application/json" />  
        <entry key="xml" value="application/xml" />  
    </map>  
</property>  

<property name="viewResolvers">  
    <!-- 关闭所有的解析器,防止它在查找候选视图时多个解析器都运行 -->  
    <list></list>  
</property>  

<property name="defaultViews">  
    <list>  
        <!-- for application/json -->  
        <bean  
            class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">  
            <!--                 <property name="renderedAttributes">-->  
            <!--                     <set>-->  
            <!--                         <value>result</value>-->  
            <!--                         <value>user</value>-->  
            <!--                         <value>page</value>-->  
            <!--                     </set>-->  
            <!--                 </property>-->  
            <!-- 重新设置 objectMapper-->  
            <property name="objectMapper">  
                <bean class="org.codehaus.jackson.map.ObjectMapper">  
                    <!-- 
                        设置objectMapper的serializationConfig的serializationInclusion属性,以忽略null对象 
                    -->  
                    <property name="serializationConfig.serializationInclusion">  
                        <value  
                            type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</value>  
                    </property>  
                </bean>  
            </property>  
        </bean>  
        <!-- for application/xml -->  
        <bean class="org.springframework.web.servlet.view.xml.MarshallingView">  
            <property name="marshaller">  
                <bean class="org.springframework.oxm.castor.CastorMarshaller">  
                    <property name="validating" value="false"></property>  
                </bean>  
            </property>  
        </bean>  
    </list>  
</property>  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值