JSON(JavaScript Object Notation, JS对象简谱)是一种轻量级的数据交换格式。它基于 ECMAScript(European Computer Manufacturers Association, 欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。 易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。
JSON 可以将 JavaScript 对象中表示的一组数据转换为字符串,传递这串字符串比传递一大组数据轻松得多,在需要的时候再将它还原为支持的数据格式。JSON 是序列化的对象或数组,它是 JS 对象的字符串表示方法,也就是说,JSON本质上是一个字符串。JSON以键值对 (key, value) 的形式存在,其中:
JavaScript 中的所有事物都是对象:字符串、数值、数组、函数…。对象只是一种特殊的数据。对象拥有属性和方法。
通过 JavaScript,能够定义并创建自己的对象。
创建新对象有两种不同的方法:
person=new Object();
person.firstname="John";
person.lastname="Doe";
person.age=50;
person.eyecolor="blue";
也可以使用对象字面量来创建对象,语法格式如下:
{ name1 : value1, name2 : value2,…nameN : valueN }
person={firstname:"John",lastname:"Doe",age:50,eyecolor:"blue"};
补充一个知识点:
new 和不 new的区别:
function person(firstname,lastname,age,eyecolor)
{
this.firstname=firstname;
this.lastname=lastname;
this.age=age;
this.eyecolor=eyecolor;
return [this.firstname,this.lastname,this.age,this.eyecolor,this]
}
var myFather=new person("John","Doe",50,"blue");
var myMother=person("Sally","Rally",48,"green");
console.log(myFather) // this 输出一个 person 对象
console.log(myMother) // this 输出 window 对象
js对象转json 字符串:json = JSON.stringify(js);
let obj = {
a: 'hello',
b: 'world'
}
let json = JSON.stringify(obj);
console.log(json); // {"a":"hello","b":"world"}
console.log(typeof json); // string
json字符串转成js对象js = JSON.parse(json);
let json = '{"a":"hello","b":"world"}';
let obj = JSON.parse(json);
console.log(obj); // { a: 'hello', b: 'world' }
区别 | JSON | JavaScript对象 |
---|---|---|
含义 | 仅仅是一种数据格式 | 表示类的实例 |
传输 | 可以跨平台数据传输 | 不能传输 |
变现 | 键值对方式,键必须加双引号,值不能是方法函数,不能是undefined/NAN | 键值对方式,键不加引号,值可以是函数、对象、字符串、数字、boolean 等 |