Json
1.引入
我们在实际的开发中经常需要解决一个问题是需要进行数据交换,我们经常听到一个词:Json,下面我们一起来学习使用Json的使用。
2.Json概述
JSON(JavaScript Object Notation, JS 对象简谱) 是一种轻量级的数据交换格式。它基于 ECMAScript的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。JSON 经常在数据从服务器发送到网页时使用。JSON 的语法是来自 JavaScript 对象符号的语法,但 JSON 格式是纯文本。读取和生成 JSON 数据的代码可以在任何编程语言编写的。
3.Json的实例
通过Json的概述,我们大致的对Json数据有了一个认识,下面我们一起来写一个Json的实例,来看一下Json如何定义和使用。
使用Json定义一个学生对象
{
"student":[
{"stuName":"张三", "age":12},
{"stuName":"李四", "age":13},
{"stuName":"王五", "age":14}
]
}
相关的语法规则说明:
1.JSON 数据的书写方式是以键值对的形式操作,如:键是:stuName,值是"张三"。
2.JSON 对象是在"{}"内书写的。也就是键值对是存放在一个"{}"内,一个"{}"内就是一个学生对象。
3.Json数组在定义的时候,我们会把多个对象存放在一个"[]"内,然后里面包含着多个对象数据。最后我们又会把
这一个大的数据又赋值给学生对象"student"。
注意:
在定义Json数据的时候最后一个对象不允许有","号。
4.Json对象的相关方法
Json对象又两个重要的方法,一个用于解析Json数据、另一个用于把键值对形式的数据构造成Json类型的数据。
(1).JSON.parse()
①:概述
JSON.parse()
方法用来解析JSON字符串,构造由字符串描述的JavaScript值或对象。提供可选的 reviver 函数用以在返回之前对所得到的对象执行变换(操作)。
②:语法
JSON.parse(text[, reviver]);
参数
text
要被解析成 JavaScript 值的字符串,关于JSON的语法格式,请参考:JSON。
reviver 可选
转换器, 如果传入该参数(函数),可以用来修改解析生成的原始值,调用时机在 parse 函数返回之前。
返回值
Object 类型, 对应给定 JSON 文本的对象/值。
③:使用实例:
<script type="text/javascript">
//定义一个字符串
var str = '{"stuName":"张三","stuAge":12}';
//使用json.parse()解析字符串然后输出
var json = JSON.parse(str);
console.log("解析出来的数据是:" + json);
</script>
(2).JSON.stringify()
①:概述
JSON.stringify()
方法将一个 JavaScript 对象或值转换为 JSON 字符串,如果指定了一个 replacer 函数,则可以选择性地替换值,或者指定的 replacer 是数组,则可选择性地仅包含数组指定的属性。
②:语法:
JSON.stringify(value[, replacer [, space]]);
value
将要序列化成 一个 JSON 字符串的值。
replacer 可选
如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为 null 或者未提供,则对象所有的属性都会被序列化。
space 可选
指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(当字符串长度超过10个字母,取其前10个字母),该字符串将被作为空格;如果该参数没有提供(或者为 null),将没有空格。
返回值
一个表示给定值的JSON字符串。
③:使用实例:
<script type="text/javascript">
console.log(JSON.stringify({ x: 3, y: 7 }));
console.log(JSON.stringify({stuName:'张三',stuAge:12}));
console.log(JSON.stringify([{stuName:'张三',stuAge:12},{stuName:'李四',stuAge:13}]));
console.log(JSON.stringify('test'));
</script>