JSON简单了解
JSON简单了解
简介
JSON (JavaScript Object Notation):一种简单的数据格式,比xml更轻巧。JSON 是 JavaScript 原生格式,这意味着在 JavaScript中处理 JSON 数据不需要任何特殊的 API 或工具包。
JSON是一个序列化的对象或数组。
结构
- “名称/值”对的集合。不同的语言中,它被理解为对象,纪录,结构,字典,哈希表,有键列表,或者关联数组。
- 值的有序列表。在大部分语言中,它被理解为数组。
规则
- 数据在键值对中
- 数据由逗号分隔
- 花括号保存对象
- 方括号保存数组
数据类型
- 数字(整数或浮点数)
- 字符串(在双引号中)
- 逻辑值(true 或 false)
- 数组(在方括号中)
- 对象(在花括号中)
- null
// 对象
{
"name":"yzq",
"age":"23",
"sex":"true",
}
// 数组
[
{
"name":"yzq",
"age":"16"
},
{
"name":"yuzhiqiang",
"age":"23"
}
]
多种格式可嵌套使用
json字符串与javascript对象的转换
JSON.parse() 方法:将JSON字符串转化为JavaScript对象
JSON.stringify() 方法:将JavaScript对象,转化为JSON字符串
后端返回json格式的数据
普通的返回json的方式就是(也是需要jackson依赖的)
ObjectMapper mapper = new ObjectMapper();//使用工具转化格式
String json = mapper.writeValueAsString(info);
response.setContentType("application/json;charset=utf-8");//设置响应头
response.getWriter().write(json);
在使用框架的项目中当然是使用注解更方便
首先需要导入jackson依赖
<!--Jackson依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.5</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.5</version>
</dependency>
在ssm项目Controller类的方法之前添加上@ResponseBody注解
@responseBody注解的作用是将controller的方法返回的对象通过适当的转换器转换为指定的格式之后,写入到response对象的body区,通常用来返回JSON数据或者是XML数据。- 一般在异步获取数据时使用【也就是
AJAX】
@ResponseBody
@RequestMapping("test.do")
public PageInfo test() throws Exception {
List<Product> productList = productService.findByPage(1,2);
PageInfo pageInfo = new PageInfo(productList);
return pageInfo;
}
前端使用ajax获取到json数据
通常我们使用jquery的ajax方法来发送异步请求获取数据
$.ajax
$.ajax({
type:'GET', // 请求方法: GET/POST, 默认:GET
url:'ajax/ajax_checkAccountUserName', // 请求的地址
data:{param:'request'}, // 请求参数
dataType:'json', // 数据格式, json/xml/...
timeout:3000, // 请求的超时时间(单位:毫秒)。
cache:false, // 是否缓存上一次的数据,默认:true
async:true, // 同步/异步请求
beforeSend:function(){ // 发送请求前调用(一般不需要此函数)
alert('before send');
},
success:function(data){ // 请求成功后的回调函数
alert("$.ajax->" + data.account);
},
error: function(XMLHttpRequest, errMsg, errThrown) { //请求失败调用
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(errMsg);
}
});
$.get
$.get(
'ajax/ajax_checkAccountUserName',
{param:'admin'}, // 请求参数(可以省略)
function(data) { // 请求成功后的回调函数(可以省略)
alert("$.get->" + data.account);
},
'json'
);
$.post
$.post(
'ajax/ajax_checkAccountUserName',
{param:'admin2'}, // 请求参数(可以省略)
function(data) { // 请求成功后的回调函数(可以省略)
alert("$.post->" + data.account);
},
'json'
);
JSON简单了解的更多相关文章
- php+jquery+ajax+json简单小例子
直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...
- jQuery使用cookie与json简单实现购物车功能
本文实例讲述了jQuery使用cookie与json简单实现购物车的方法.分享给大家供大家参考,具体如下: 1.生成一个cookie 用来存储商品的id String类型 2.添加商品id的时候 把 ...
- json简单使用
web工程中如何将大量数据从服务器端传送到浏览器一直是很重要的一个问题. 其中一个解决方法是在服务器端将将数据封装成json格式,然后传给前台.废话不多说,下面讲干货. 1.要用json必须下载一个库 ...
- struts2 + jquery + json 简单的前后台信息交互
ajax 是一种客户端与服务器端异步请求的交互技术.相比同步请求,大大提高了信息交互的速度和效率.是当下非常实用和流行的技术. 这里简单的说明 struts2 + jquery + json 下的 信 ...
- ajax测试Demo以及json简单的转化
Ajax是局部刷新,并不影响页面其他的操作 实例1:本测试是演示利用Ajax在一个页面播放视频,点击赞和踩按钮,视频不会受影响, 新建一个ajaxTest.html页面 <!DOCTYPE ht ...
- jquery ajax json简单的分页,模拟数据,没有封装,只显示原理
简单的分页,模拟数据,没有封装,显示原理,大家有兴趣可以自己封装,这里只是个原理过程,真正的分页也差不多是这个原理,只是请求数据不太一样,html部分: <!TOCTYPE HTML> & ...
- json简单案例
1.Group类 import java.util.ArrayList; import java.util.List; class Group{ private int id; private Str ...
- JSON简单介绍
//JSON是一种数据格式//JSON比较像php里面的关联数组,它里面存的内容也是key和value成对存在的 JSON写法格式 var js = { "one":"h ...
- Js 中json简单处理
Json2.js下载地址 json常用处理 Json字符串 var str = '{"code":10,"msg":"codemsg",&q ...
随机推荐
- linux下 > /dev/null 2 > &1 的意思和如何在后台启动进程
一.几个基本符号及其含义 之前看到别人写的一个shell脚本,有一个命令是:rm -f ${src_tmp_file} > /dev/null 2>&1 现在大概明白是什么意思了 ...
- Docker SDK api操作Docker
下载包 go get "github.com/docker/docker/api/types" go get "github.com/docker/docker/clie ...
- 电影AI修复,让重温经典有了新的可能
摘要:有没有一种呈现,不以追求商业为第一目的,不用花大价钱,不用翻拍,没有画蛇添足,低成本的可共赏的让经典更清晰? 本文分享自华为云社区<除了重映和翻拍,重温经典的第三种可能>,原文作者: ...
- Linux+mysql混杂
一.linux 1.linux中给某一文件中批量新增一个内容 先vim进入文件,然后先按ctrl+v 然后选中需要的行数, 在shift+i 写你要添加的东西 然后在按下esc 二,mysql 1.l ...
- 攻防世界 csaw2013reversing2 CSAW CTF 2014
运行程序 flag显示乱码 IDA打开查看程序逻辑 1 int __cdecl __noreturn main(int argc, const char **argv, const char **en ...
- sqli-labs系列——第三关
less3 判断注入类型 这第三关有点意思,是一个带括号的数字型注入,这里需要闭合它的括号,之前遇到过很多这样的站,它的sql语句一般都是这样的: $sql = select * from user ...
- java进阶(38)--线程安全
文档目录: 一.概念 二.解决方案 三.举例说明 ---------------------------------------分割线:正文------------------------------ ...
- Elasticsearch 分页查询
目录 前言 from + size search after scroll api 总结 参考资料 前言 我们在实际工作中,有很多分页的需求,商品分页.订单分页等,在MySQL中我们可以使用limit ...
- 干货!Apache Hudi如何智能处理小文件问题
1. 引入 Apache Hudi是一个流行的开源的数据湖框架,Hudi提供的一个非常重要的特性是自动管理文件大小,而不用用户干预.大量的小文件将会导致很差的查询分析性能,因为查询引擎执行查询时需要进 ...
- 201873030133-杨子豪 实验三 结对项目—《D{0-1}KP 实例数据集算法实验平台》项目报告
项目 内容 课程班级博客链接 班级博客链接 这个作业要求链接 作业要求链接 我的课程学习目标 了解软件工程的作用与意义,将软件工程与过去所学相结合 这个作业在哪些方面帮助我实现学习目标 体验了结对式的 ...