json(javascript Object Notation)是一种轻量级的数据交换格式。它是一种基于EMCAScript规范的子集。格式
其对象表示为键值对。
数据由逗号分隔。
花括号表示对象。
方括号表示数组。
JSON 键值对是用来保存 JS 对象的一种方式,和 JS 对象的写法也大同小异,键/值对组合中的键名写在前面并用双引号 "" 包裹,使用冒号 : 分隔,然后紧接着值:
这很容易理解,等价于这条 JavaScript 语句:
用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">
-
- <property name="ignoreAcceptHeader" value="true" />
-
- <property name="favorPathExtension" value="false" />
-
- <property name="favorParameter" value="true" />
- <property name="order" value="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>
-
- <bean
- class="org.springframework.web.servlet.view.json.MappingJacksonJsonView">
-
-
-
-
-
-
-
-
- <property name="objectMapper">
- <bean class="org.codehaus.jackson.map.ObjectMapper">
-
-
-
- <property name="serializationConfig.serializationInclusion">
- <value
- type="org.codehaus.jackson.map.annotate.JsonSerialize.Inclusion">NON_NULL</value>
- </property>
- </bean>
- </property>
- </bean>
-
- <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>