JSON基础
来源:互联网 发布:文华财经mac版 编辑:程序博客网 时间:2024/06/01 23:04
JSON基本概念
- JSON:javaScript对象表示法(JavaScript Object Notation)
- JSON是存储和交换文本信息的语法,类似XML。它采用键值对的方式来组织,易于人们阅读和编写,同时也易于机器解析和生成
- JSON其实是文本信息的一种语法,所以它独立于语言,也就是说不管什么语言,都可以解析json,只需要按照json的规则来就行
JSON与XML比较
- json的长度和xml格式比起来很短小
- json读写的速度更快
- json可以使用JavaScript内建的eval方法进行解析(这个方法很危险),转换成JavaScript对象,非常方便
JSON语法规则
JSON格式:名称/值对(如:”name”:”小明”)
JSON的值可以是下面这些类型
数字(整数或浮点数),比如123,1.23
字符串(在双引号中)
逻辑值(true或false)
数组(在[]中)
对象(在{}中)
null
JSON数据列子
{ "students":[ {"name":"小明","age":17}, {"name":"小红","age":20}, {"name":"小强","age":19} ]}
JSON解析
1. eval方法
- 当json数据格式正确时:
var data = '{ "students":[ {"name":"小明","age":17}, {"name":"小红","age":20}, {"name":"小强","age":19} ]}';var obj = eval('('+data+')');console.log(obj.students[0].name); //控制台打印出 小明
- 当json数据错误时,如:把小明的年龄改为alert(17)
var data = '{ "students":[ {"name":"小明","age":alert(17)}, {"name":"小红","age":20}, {"name":"小强","age":19} ]}';var obj = eval('('+data+')');console.log(obj.students[0].name);//首先弹出对话框,内容17;其次控制台打印出 小明
总结:eval方法不但解析了json字符串,还执行了json字符串中的一些方法,不推荐使用,没有安全性
2.parse方法
- 当json数据格式正确时:
var data = '{ "students":[ {"name":"小明","age":17}, {"name":"小红","age":20}, {"name":"小强","age":19} ]}';var obj = JSON.parse(data);console.log(obj.students[0].name); //控制台打印出 小明
- 当json数据错误时,如:把小明的年龄改为alert(17)
var data = '{ "students":[ {"name":"小明","age":alert(17)}, {"name":"小红","age":20}, {"name":"小强","age":19} ]}';var obj = JSON.parse(data);console.log(obj.students[0].name); //控制台报错,json数据不合法
总结:推荐使用JSON.parse(),可以检验json数据是否合法,安全性高
JSON校验工具:JSONLint
在线校验地址:https://jsonlint.com/
阅读全文
0 0
- JSON 基础
- JSON 基础
- JSON基础
- Json基础
- JSON基础
- json 基础
- json 基础
- JSON基础
- JSON基础
- JSON 基础
- json 基础
- JSON基础
- JSON基础
- JSON 基础
- json 基础
- JSON 基础
- json基础
- json基础
- xgboost简介
- centos下安装nginx搭配fastdfs
- Project facet Java version 1.7 is not supported.的解决办法
- 初识vscode,留下点设置及初步插件
- ThreadLocal使用及原理
- JSON基础
- 基本内置类型
- Python 中 map和reduce 的用法
- UVA 1585 Score
- (hdu1257)最少拦截系统(DP)
- B
- Linux编程学习之进程间通信篇-无名管道
- 批处理脚本bat设置IP地址
- 学习曲线