JSON简单了解

简介

JSON (JavaScript Object Notation):一种简单的数据格式,比xml更轻巧。JSONJavaScript 原生格式,这意味着在 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简单了解的更多相关文章

  1. php+jquery+ajax+json简单小例子

    直接贴代码: <html> <title>php+jquery+ajax+json简单小例子</title> <?php header("Conte ...

  2. jQuery使用cookie与json简单实现购物车功能

    本文实例讲述了jQuery使用cookie与json简单实现购物车的方法.分享给大家供大家参考,具体如下: 1.生成一个cookie 用来存储商品的id  String类型 2.添加商品id的时候 把 ...

  3. json简单使用

    web工程中如何将大量数据从服务器端传送到浏览器一直是很重要的一个问题. 其中一个解决方法是在服务器端将将数据封装成json格式,然后传给前台.废话不多说,下面讲干货. 1.要用json必须下载一个库 ...

  4. struts2 + jquery + json 简单的前后台信息交互

    ajax 是一种客户端与服务器端异步请求的交互技术.相比同步请求,大大提高了信息交互的速度和效率.是当下非常实用和流行的技术. 这里简单的说明 struts2 + jquery + json 下的 信 ...

  5. ajax测试Demo以及json简单的转化

    Ajax是局部刷新,并不影响页面其他的操作 实例1:本测试是演示利用Ajax在一个页面播放视频,点击赞和踩按钮,视频不会受影响, 新建一个ajaxTest.html页面 <!DOCTYPE ht ...

  6. jquery ajax json简单的分页,模拟数据,没有封装,只显示原理

    简单的分页,模拟数据,没有封装,显示原理,大家有兴趣可以自己封装,这里只是个原理过程,真正的分页也差不多是这个原理,只是请求数据不太一样,html部分: <!TOCTYPE HTML> & ...

  7. json简单案例

    1.Group类 import java.util.ArrayList; import java.util.List; class Group{ private int id; private Str ...

  8. JSON简单介绍

    //JSON是一种数据格式//JSON比较像php里面的关联数组,它里面存的内容也是key和value成对存在的 JSON写法格式 var js = { "one":"h ...

  9. Js 中json简单处理

    Json2.js下载地址 json常用处理 Json字符串 var str = '{"code":10,"msg":"codemsg",&q ...

随机推荐

  1. flutter兼论

    Flutter是Google开发的一套全新的跨平台.开源UI框架,支持iOS.Android系统开发,并且是未来新操作系统Fuchsia的默认开发套件.自从2017年5月发布 第一个版本以来,目前Fl ...

  2. mysql 统计新增每天数据

    #创建基表 CREATE TABLE `table_sum` (   `id` int(11) NOT NULL AUTO_INCREMENT,   `table_name` varchar(50) ...

  3. linux安装mysql8.0

    linux 上安装mysql8.0 mysql版本8.0.16 MySQL Community 操作系统centos7 准备工作: mysql8.0 rpm文件 安装步骤: 1. 下载mysql的re ...

  4. 一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便

    原文链接:一个名叫Sentinel-Rules-SDK的组件,使得Sentinel的流控&熔断规则的配置更加方便 1 Sentinel 是什么? 随着微服务的流行,服务和服务之间的稳定性变得越 ...

  5. 《Selenium自动化测试实战:基于Python》之 Python与Selenium环境的搭建

    第2章  Python与Selenium环境的搭建 购买链接:  京东:https://item.jd.com/13123910.html  当当:http://product.dangdang.co ...

  6. ch1_5_1统计最大最小元素的平均比较次数

    public class ch1_5_1统计最大最小元素的平均比较次数 { public static void main(String[] args) { // TODO Auto-generate ...

  7. kthread_worker和kthread_work机制

    1.概述 在阅读内核源码时,可以看到kthread_worker.kthread_work两个数据结构配合内核线程创建函数一起使用的场景.刚开始看到这块时,比较困惑,紧接着仔细分析源码后,终于弄清楚了 ...

  8. 第21 章 : Kubernetes 存储架构及插件使用

    Kubernetes 存储架构及插件使用 本文将主要分享以下三方面的内容: Kubernetes 存储体系架构: Flexvolume 介绍及使用: CSI 介绍及使用. Kubernetes 存储体 ...

  9. 第6 章 : 应用编排与管理:Deployment

    应用编排与管理 本节课程要点 需求来源: 用例解读: 操作演示以及架构设计. 需求来源 背景问题 首先,我们来看一下背景问题.如下图所示:如果我们直接管理集群中所有的 Pod,应用 A.B.C 的 P ...

  10. [Azure Devops] 获取单元测试的代码覆盖率

    1. 获取代码覆盖率 上一篇文章里,我们在 Pipeline 中插入一个单元测试并把所有单元测试都通过作为 Pipeline 通过的硬性要求.除此以外,我们还可以获取单元测试的代码覆盖率,用作衡量代码 ...