JSON简介

  • JSON = JavaScript Object Notation:js对象标记法,是一种轻量级的数据交换格式
  • JSON基于ECMAScript规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据
  • JSON字符集必须是UTF-8,JSON的字符集规定必须用双引号“ ”,键名也必须用双引号“ ”
  • 任何支持的数据类型都可以通过JSON来表示
  • JavaScript内置了JSON的解析
  • JSON本质就是字符串
    <script>var obj = {name : "OliGit", age : 20};//这是一个js对象// console.log(obj);// console.log(typeof obj);var jsn = '{"name" : "OliGit", "age" : 20}';//这是一个json字符串console.log(jsn);console.log(typeof jsn);</script>

JSON语法

JSON语法是JavaScript对象表示语法的子集

JSON语法规则

  • 数据在键值对中
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

JSON值可以是

  • 数字(整数或浮点数)
  • 字符串(在双引号中)
  • 逻辑值(true或false)
  • 数组(在方括号中)
  • 对象(在花括号中)
  • null
<script>// json对象表示{"name":"OliGit","age":23}// JSON本质上是字符串// js数组表示var arr = ["OliGit", 23, true];// json数组表示["OliGit", 23, true]// json数组对象组合嵌套使用[{"name":"aaa","age":22},{"name":"bbb","age":23}]</script>

JSON的解析和序列化

一般情况下,我们的json数据都是从服务端获取到的,获取的json数据是以字符串的形式返回的。这个字符串虽然是json格式的,但是不能被直接使用,我们必须将该字符串转化为一个js对象才能正常解析它

  • JavaScript函数eval()可用于将JSON文本转换为JavaScript对象
    eval()函数可编译并执行任何JavaScript代码。这隐藏了一个潜在的安全问题。(如果JSON中 包含恶意代码也会被直接执行)

  • 使用JSON解析器将JSON转换为JavaScript对象是更安全的做法。JSON解析器只会识别JSON文本,而不会执行。


JSON的解析

将JSON数据转换成JS对象

语法:JSON.parse()

        var obj = {name : "OliGit", age : 22};//这是一个JS对象var jsn = '{"name" : "OliGit", "age" : 20}';//这是一个json字符串// JSON字符串转JS对象:使用JSON.parse()方法var json2obj = JSON.parse(jsn);console.log(json2obj);//{name : "OliGit", age : 20}console.log(typeof json2obj);//objectalert(json2obj.name);

JSON的序列化

将JavaScript对象转换成JSON数据(字符串)

语法:JSON.stringify()

        var obj = {name : "OliGit", age : 22};//这是一个JS对象var jsn = '{"name" : "OliGit", "age" : 20}';//这是一个json字符串// JS对象转JSON字符串:使用JSON.stringify()方法var obj2json = JSON.stringify(obj);console.log(obj2json);//{"name" : "OliGit", "age" : 22}console.log(typeof obj2json);//string

筛选对象键值

JSON.stringify(参数1, 参数2, 参数3):JS对象转JSON字符串

  • 参数1:要转换JS对象或数组
  • 参数2:(可选),数组或函数
    a、如果参数2是一个数组,则仅转换数组中指定的属性
    b、如果参数2为函数,则将调用该函数,并传入每个成员的键和值
  • 参数3:(可选)文本缩进、空格和换行符
        var obj = {name : "OliGit", age : 22, sex : "男"};//这是一个JS对象// var obj2json = JSON.stringify(obj);// var obj2json = JSON.stringify(obj, ["name", "sex"]);//仅转换数组中的name和sex属性// var obj2json = JSON.stringify(obj, sex);function sex(key, value){if(value == "男"){return "女";};return value;}var obj2json = JSON.stringify(obj, null, 6);//每一个数据前都有6个空格console.log(obj2json);console.log(typeof obj2json);

JSON.parse(参数1, 参数2):JSON字符串转JS对象

  • 参数1:要转换JSON字符串
  • 参数2:(可选)在parse函数返回之前处理结果的函数,处理每个成员的键和值
        var jsn = '{"name" : "OliGit", "age" : 20, "sex" : "男"}';//这是一个json字符串// var json2obj = JSON.parse(jsn);var json2obj = JSON.parse(jsn, sex);function sex(key, value){if(value == "男"){return "女";};return value;}console.log(json2obj);console.log(typeof json2obj);

JavaScript JSON数据格式相关推荐

  1. XML和JSON数据格式对比

    概念 XML 扩展标记语言 (Extensible Markup Language, XML) ,用于标记电子文件使其具有结构性的标记语言,可以用来标记数据.定义数据类型,是一种允许用户对自己的标记语 ...

  2. Ajax---使用json数据格式输出数据

    将Ajax得到的数据使用json数据格式输出 1.项目清单 2.代码 2.1.Procince类代码 2.2.ProvinceDao类代码 2.3.QueryJsonServlet类代码 2.4.Te ...

  3. JSON 数据格式解析(转)

    JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互.本文将快速讲解 JSON 格式,并通过代码示例演示如 ...

  4. Ajax系列之JSON数据格式

    JSON数据格式 JSON是什么 JSON是一种轻量级的数据交换格式 JSON文件时独立的,扩展名是".json"该文件中允许保存JSON格式的数据 注意: 在JSON文件中字符串 ...

  5. JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式

    JSON数据格式:以及XML文件格式,YML文件格式,properties文件格式 数据格式: json数据格式:属于轻量级数据格式,是javascript的一种描述数据的格式.具有易于解析,语法简单 ...

  6. 将html代码确析成json数据格式,JSON字符串解析成JSON数据格式

    在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数. 2. 使用Function对象来进行返回解析. 使用eval函数来解析,并且使用jquery的ea ...

  7. 数组转json去除首尾引号_诞生于JavaScript,json的前世今生

    诞生于JavaScript,json的前世今生 json含义 在开始之前,问个问题,什么是json? a:我猜它应该是某一门高深的技术(语重心长) b:json这个词为啥谷歌翻译?是啥新词语嘛?是不是 ...

  8. JSON数据格式解析库(cJSON、Jansson)的使用在STM32上移植和使用

    json | json-c使用入门 这篇讲的也不错,抽空看下(网络传输json数据) https://www.bilibili.com/video/av669454528?p=3&spm_id ...

  9. json数据格式了解

    json数据格式介绍: https://en.wikipedia.org/wiki/JSON JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式 json语法 ...

最新文章

  1. react hooks使用_如何使用Hooks将React类组件转换为功能组件
  2. Python编程入门到实践 - 笔记( 4 章)
  3. 强化学习之三:双臂赌博机(Two-armed Bandit)
  4. 这些你耳熟能详的“外国名牌”,其实都是中国的
  5. Dubbo监控平台安装
  6. HDLBits答案(17)_Verilog有限状态机(4)
  7. js获取当前页面url网址等信息
  8. BZOJ3527: [Zjoi2014]力 [FFT]
  9. Spring Data Redis:Sentinel的高可用性
  10. fcn从头开始_从头开始有营销问题
  11. 带父节点的平衡二叉树_Python算法系列—深度优先遍历算法【二叉树】
  12. 通过js引用外部脚本(嘿嘿,方便直接在浏览器上调试抓取代码)
  13. python大佬养成计划-----多进程
  14. webpack初体验_使用webpack打包js文件_json文件_使用webpack开发模式_生产模式打包---webpack工作笔记003
  15. java jdbc sql 参数_java – Postgresql JDBC表值参数
  16. centos7网卡编辑_Centos7修改网卡名称
  17. Java中PreparedStatement和Statement区别
  18. 基于微信小程序的点餐系统设计
  19. ubuntu安装ipython3_ubuntu下ipython的安装
  20. IP地址定位之IP画像——如何形成IP用户画像?

热门文章

  1. linux yum选择版本mysql_linux yum安装指定版本mysql
  2. antd 能自适应吗_Antd表格滚动 宽度自适应 不换行的实例
  3. JS的基本语法知识概括(ECMA、DOM、BOM)
  4. 小汤学编程之jQuery学习day01——简介、入门、选择器
  5. Opencv3.0.0安装包
  6. 【Alpha阶段】第七次scrum meeting
  7. 在C/C++函数中使用可变参数
  8. Hadoop ecosystem
  9. 掌握 Ajax,第 11 部分: 服务器端的 JSON
  10. C#.Net 常用函数和方法集