JavaScript:JSON 和 JS 对象
来源:互联网 发布:手机淘宝不能改评价吗 编辑:程序博客网 时间:2024/04/27 13:29
区别
JSON(JavaScript Object Notation)仅仅是一种数据格式(或者叫数据形式)。数据格式其实就是一种规范,按照这种规范来存诸和交换数据。就好像 XML 格式一样。
2. 键必须加双引号
3. 值不能为方法函数/undefined/NaN1.键值对
2.值可以是函数、对象、字符串、数字、boolean 等相互转换Json → JS 对象:
1.
var obj = JSON.parse(jsonstring);
2.
var obj = eval("("+jsonstring+")");
JS 对象 → Json:JSON.stringify(obj);
JSON 文本格式在语法上与创建 JavaScript 对象的代码相同,但本质是不同的。我们不能把以下的对象叫 JSON,比如:
var obj1 = {}; // 这只是 JS 对象// 可把这个称做:JSON 格式的 JavaScript 对象 var obj2 = {"width":100,"height":200,"name":"rose"};// 可把这个称做:JSON 格式的字符串var str1 = '{"width":100,"height":200,"name":"rose"}';// 这个可叫 JSON 格式的数组,是 JSON 的稍复杂一点的形式var arr = [ {"width":100,"height":200,"name":"rose"}, {"width":100,"height":200,"name":"rose"}, {"width":100,"height":200,"name":"rose"},]; // 这个可叫稍复杂一点的 JSON 格式的字符串 var str2='['+ '{"width":100,"height":200,"name":"rose"},'+ '{"width":100,"height":200,"name":"rose"},'+ '{"width":100,"height":200,"name":"rose"},'+']';
但 JSON 和 JavaScript 确实存在渊源,JSON 本身的意思就是 JavaScript 对象表示法(JavaScript Object Notation),可以说这种数据格式是从 JavaScript 对象中演变出来的。JSON 语法是 JavaScript 对象表示法语法的子集。
JSON 格式的数据,主要是为了跨平台交流数据用的。JSON 独立于语言和平台,JSON 解析器和 JSON 库支持许多不同的编程语言。
语法
1、JSON 语法规则:
数据在名称/值对中
数据由逗号分隔
花括号保存对象
方括号保存数组
2、JSON 数据值:
数字(整数或浮点数)
字符串(在双引号中)
逻辑值(true 或 false)
数组(在方括号中)
对象(在花括号中)
null
JSON 数据结构有两种,这两种结构就是对象和数组,通过这两种结构可以表示各种复杂的结构。
JSON 使用严格的 JavaScript 对象表示法来表示结构化的数据,因此 JSON 的属性名必须有双引号。
{ "company": "Apple", "age": 18, "IPO", true, "employees": [ { "firstName":"John" , "lastName":"Doe" }, { "firstName":"Anna" , "lastName":"Smith" }, { "firstName":"Peter" , "lastName":"Jones" } ]}
数据转换
JSON 数据转换为 JS 对象
1、JS 解析器:eval() 函数
// 创建包含 JSON 语法的 JavaScript 字符串var txt = '{ "employees" : [' + '{ "firstName":"John" , "lastName":"Doe" },' + '{ "firstName":"Anna" , "lastName":"Smith" },' + '{ "firstName":"Peter" , "lastName":"Jones" } ]}';//使用 JS 解析器,解析 JSON 文本并生成 JS 对象var obj = eval("(" + txt + ")");
使用 eval() 函数时,必须为传入的 JSON 数据参数添加括号'()',否则会报语法错误。
2、 解析器:parse()函数
但 eval() 的问题在于,除了可以解析 JSON 数据,也可以用于执行 JavaScript 脚本片段,这就会带来潜在的安全问题。JSON 提供了专门的 JSON Parser 来实现只用于解析 JSON 数据,不会执行 JavaScript 脚本,而且速度更快。如下:
var obj = JSON.parse(txt);
较新的浏览器和最新的 ECMAScript (JavaScript) 标准中均包含了原生的对 JSON 的支持。
JS 数据转换为 JSON 文本
使用 JSON.strigify() 函数,将 Javascript 对象转换为 JSON 文本数据。
var obj = {a:1,b:2}var txt = JSON.stringify(obj);console.log(txt);结果:"{"a":1,"b":2}"
- JavaScript:JSON 和 JS 对象
- JSON和JS对象
- JS对象和JSON
- [原]JSON和JS对象
- js对象和json文件
- JSON和js对象转换
- json和js对象转换
- JavaScript json 转换成 js对象
- 【js】json格式的javascript对象
- JavaScript--解析JSon数据--JS对象、数组
- javascript遍历json对象的key和任意js对象属性
- js--json字符串 和 json对象总结
- js 中的 json对象和 json 字符串
- json对象和js对象的区别
- js对象、Json对象和Json字符串的区别
- JS 处理JSON数据及javascript处理对象、JSON对象、hash对象、数组对象的方法
- javascript对象和JSON的初级用法
- javascript json对象javascript
- 51nod 1640 天气晴朗的魔法【最小生成树概念】
- 在linux中将php-fpm配置成service
- 利用AForge+Tesseract制作视频OCR程序
- note_1 about detecting with haar and adboost
- NB-IoT和LoRa的前景分析
- JavaScript:JSON 和 JS 对象
- Java String.split()用法小结
- boost::asio的失败尝试
- test
- struts2把action中的值传递到jsp页面
- 阿里云ubuntu14.04安装Caffe和pycaffe,cpu_only
- HTML学习---------介绍HTML5
- SQL之查询函数LOCATE、POSITION、INSTR、FIND_IN_SET、IN、LIKE
- Unity3d碰撞器与触发器的区别详解