一、什么是Json
1 . 简介:JSON与XML非常相似,都是用来存储数据的,并且都是基于纯文本的数据格式。与XML相比,JSON解析速度更快,占用空间更小,且易于阅读和编写,同时也易于机器解析和生成。
2 . Json的两种数据结构
对象结构:在对象结构以“{”开始,以“}”结束。中间部分由0个或多个以英文“,”分隔的name:value对构成。例如:一个address对象包含城市、街道、邮编等信息,使用JSON的表示为: {“city”:”Beijing”,”street”:”Xisanqi”,”postcode”:100096}
数组结构:例如,一个数组包含了String、Number、Boolean、null类型数据,使用JSON的表为:[“abc”,12345,false,null]
也可以用对象结构和数组结构组成更复杂的数据结构:
{
“name”: “zhangsan”
“hobby”:[“篮球”,”羽毛球”,”游泳”]
“address”:{
“city”:”Beijing”
“street”:”Xisanqi”
“postcode”:100096
}
}
二、Json编程实例:
1 . 声明:
实验环境:IntelliJ IDEA 2017.2.3 x64,gradle-3.3,apache-tomcat-8.0.44,Navicat for MySQL
本实验在原有SpringMVC的项目上进行完善。
2 . 在bulid.gradle中添加Json依赖包
//json依赖包
compile group: 'com.alibaba', name: 'fastjson', version: '1.2.47'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.5'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-core', version: '2.9.5'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-annotations', version: '2.9.5'
//jstl依赖包
compile group: 'javax.servlet.jsp.jstl', name: 'jstl', version: '1.2'
3 . 在SpringMVC的配置文件中添加下面的bean
<!--注解驱动器-->
<mvc:annotation-driven>
<!--消息转化器-->
<mvc:message-converters>
<!--配置以下bean,解决json数据传输中中文乱码的问题-->
<bean class="org.springframework.http.converter.StringHttpMessageConverter">
<property name="supportedMediaTypes">
<list>
<value>application/json;charset=UTF-8</value>
<value>text/html;charset=UTF-8</value>
</list>
</property>
</bean>
<!--json数据转换-->
<bean class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">
</bean>
</mvc:message-converters>
</mvc:annotation-driven>
4 . 在控制类中创建方法的访问路径
@RequestMapping("/findOneById")
@ResponseBody
public String findOneById() throws SQLException {
Map map=new HashMap();
map.put("data","放入想要传送的数据");
//利用JSON.toJSONString()方法自动拼接字符串
return JSON.toJSONString(map);
}
5 . 在浏览器中输入localhost:8080/findOneById 访问方法