json(javascript Object Notation)是一种轻量级的数据交换格式。它是一种基于EMCAScript规范的子集。格式
其对象表示为键值对。
数据由逗号分隔。
花括号表示对象。
方括号表示数组。
JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
1
{"firstName": "John"}
这很容易理解,等价于这条 JavaScript 语句:
1
{firstName: "John"}
用json来表示对象数组,示例:
在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>
- </bean>