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. python 常用的库

    本节大纲: 模块介绍 time &datetime模块 random os sys shutil json & picle shelve xml处理 yaml处理 configpars ...

  2. C语言之简易了解程序环境

    C语言之简易了解程序环境 大纲: 程序的翻译环境 预编译 编译 汇编 链接 程序的运行环境 在ANSI C的任何一种实现中,存在两个不同的环境. 第1种是翻译环境,在这个环境中源代码被转换为可执行的机 ...

  3. Python fire库使用

    1.前要fire是python中用于生成命令行界面(Command Line Interfaces, CLIs)的工具 不需要做任何额外的工作,只需要从主模块中调用fire.Fire() 它会自动将你 ...

  4. TypeError: myMethod() takes no arguments (1 given) Python常见错误

      忘记为方法的第一个参数添加self参数 ---------------------------------------------------------------

  5. Asp Net Core 5 REST API 使用 RefreshToken 刷新 JWT - Step by Step

    翻译自 Mohamad Lawand 2021年1月25日的文章 <Refresh JWT with Refresh Tokens in Asp Net Core 5 Rest API Step ...

  6. jdbcTemplate事务管理

    1.基于TransactionTemplate的编程式事务管理 Spring之路(39)–基于TransactionTemplate的编程式事务管理 本篇通过TransactionTemplate类, ...

  7. 在Win10中手动添加/修改本地IP

    1 前言 好久没动Win10了... 今天需要用Win10做一下实验,手动修改IP,于是写下了这篇文章作为过程记录. 2 概述 Win10里面修改本地IP不是一件特别困难的事,简单来说可以分为两种方式 ...

  8. Day17_102_IO_BufferedReader

    BufferedReader 带有缓冲区的字符输入流 * 带有缓冲区的流 - java.io.Reader - java.io.BufferedReader - BufferedReader 字符流 ...

  9. Day16_98_IO_一边读一边写

    一边读一边写 import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutp ...

  10. Day13_74_守护线程

    守护线程 线程分为 用户线程 和 守护线程. setDeamon(boolean) 方法 :将该线程标记为守护线程或者用户线程. 线程对象.setDaemon(true); //false 表示用户线 ...