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. CCPC-2020 黑龙江省赛——Let’s Get Married

    题意:~~ 思路:题目给出的数字太少了,我们多写几个,就会发现每层最左边的值等于1.2*k(k+1) ,k代表层数,找规律发现如果一个点的坐标为2.(x,y)且|a|+|b|=k,id<=2*k ...

  2. 一种3位sar adc仿真验证

    3位sar adc采用下图的电容阵列,电路如下图:所有电容的正端(也称为上极板)与比较器的同相端连接,比较器反相端接gnd,其工作过程进行大致分析见之前的文章<一种3位sar adc工作过程推导 ...

  3. Python爬虫系列之爬取美团美食板块商家数据(一)

    主要思路 目的: 根据输入的城市名,爬取该城市美团美食板块所有商家的数据.数据包括: 店名.评分.评论数量.均价.地址, 并将这些数据存入Excel中. 最后尝试对爬取到的数据做一个简单的分析. 克服 ...

  4. Android Studio 之 通过 Intent 完成点击按钮实现页面跳转

    •Intent 简介 Intent 是 Android 程序中各组件之间进行交互的一种重要方式: 它不仅可以指明当前组件想要执行的动作,还可以在不同组件之间传递数据. Intent 有多个构造函数,其 ...

  5. CMS前世今生

    CMS一直是面试中的常考点,今天我们用通俗易懂的语言简单介绍下. 垃圾回收器为什么要分区分代? 如上图:JVM虚拟机将堆内存区域分代了,先生代是朝生夕死的区域,老年代是老不死的区域,不同的年代对象有不 ...

  6. python3使用kivy生成安卓程序

    技术背景 虽然现在苹果占据了很大一部分的市场,但是从销量数据来看,安卓还是占据了人口的高地.这里我们介绍一个用python的kivy+buildozer来进行安卓APP开发的简单教程,从整个过程中来看 ...

  7. LibTorch实战六:C++版本YOLOV5.4的部署

    一.环境配置 win10 vs2017 libtorch-win-shared-with-deps-debug-1.8.1+cpu opencv349 由于yolov5代码,作者还在更新(写这篇博客的 ...

  8. day-4 xctf-pwn CGfsb

    xctf-pwn CGfsb 传送门:https://adworld.xctf.org.cn/task/answer?type=pwn&number=2&grade=0&id= ...

  9. 【笔记】《Redis设计与实现》chapter11 AOF持久化

    11.1 AOF持久化的实现 命令追加 当AOF持久化处于开启状态时,服务器执行完一个写命令之后,会以协议格式将被执行的写明了追加到服务器状态的aof_buf缓冲区 struct redisServe ...

  10. 单个java文件打成可执行jar包

    1 概述 使用JDK自带的jar与java将单个java文件打成可执行jar包并运行. 当然也可以使用IDE完成,使用Maven只需要一个简单的package,但是单个文件嘛,没必要这么"凶 ...