1.js对象与Json对象的区别
JSON对象是JS的一种简单数据格式,JSON对象是JavaScript原生格式,它是一种严格的js对象的格式,JSON的属性名必须有双引号,如果值是字符串,也必须是双引号。
区别 | JSON | Javascript |
---|---|---|
含义 | 仅仅是一种数据格式 | 表示类的实例 |
传输 | 可以跨平台数据传输,速度快 | 不能传输 |
表现 | 1.简直对方式,键必须加双引号 2.值不能是方法函数,不能是undefined/NaN | 1.键值对方式,键不加引号 2.值可以是函数、对象、字符串、数字、boolean 等 |
相互转换 | 1.JSON.parse(JsonStr);(不兼容IE7) 2.eval(“(”+jsonStr+“)”);(兼容所有浏览器,但不安全,会执行json里面的表达式?) | JSON.stringify(jsObj); |
js对象: {create: Array(2)}create: Array(2)0: {ipv4: '128.0.2.155'}1: {ipv4: '128.0.2.158'}length: 2[[Prototype]]: Array(0)[[Prototype]]: Object
Json对象: {"create":[{"ipv4":"128.0.2.155"},{"ipv4":"128.0.2.158"}]}
2.Json对象与Json字符串区别:
(1)Json对象
Json对象最显著的特征:对象的值可以用 “对象.属性” 进行访问;typeOf(json对象) ===> Object类型;例:
const person={"name":"shily","sex":"女","age":"23"} //json对象
console.log(person); // {name: 'shily', sex: '女', age: '23'}
console.log(person.name); // shily
console.log(typeof person); // object
(2)Json字符串(所谓字符串:单引号或者双引号引起来)
const person='{"name":"shily","sex":"女","age":"23"}'; //json字符串
console.log(person) // {"name":"shily","sex":"女","age":"23"}
console.log(person.name) // undefined
console.log(typeof person) // string
(3)Json对象与Json字符串的相互转化
a. Json字符串转化为Json对象( JSON.parse() )
const str = '{"name":"shily","sex":"女","age":"23"}';
const strToObj = JSON.parse(str); //
console.log(strToObj); // {name: 'shily', sex: '女', age: '23'}
console.log(typeof strToObj); // object
console.log(strToObj.name) // shily
b. Json对象转化为Json字符串( JSON.stringify() )
const obj = {"name":"shily","sex":"女","age":"23"}//json对象
const objToStr = JSON.stringify(obj);
console.log(objToStr); // {"name":"shily","sex":"女","age":"23"}
console.log(typeof objToStr) // string