JavaScript JSON

335 阅读2分钟

「这是我参与2022首次更文挑战的第27天,活动详情查看:2022首次更文挑战

大家好,我是 摸鱼小公举,真正的强者,不会怨天尤人,如果想不被别人看轻,你就只有付出比别人多十倍百倍的努力,才能站的比别人更高!上一篇文章是 JS的offsetWidth、clientWidth、scrollWidth等属性的描述。今天我们一起来学习一下JavaScript JSON 数据格式。

JSON是什么?

JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,方便人阅读和编写。JSON 是一种语法,用来序列化对象、数组、数值、字符串、布尔值和 null 。它基于 JavaScript 语法,但与之不同:JavaScript不是JSONJSON也不是JavaScript。一般前端请求接口时,前端设置后台返回JSON数据格式。

在JSON中,有两种结构:对象和数组。

对象的数据格式

var obj = {"name":"Amy", "sex":"女"} 

数组的数据格式

var arr = [    {"name":"Amy", "sex":"女"} ,    {"name":"Anna", "sex":"女"} ,    {"name":"Tom", "sex":"男"} ,]

相互转换的两种方法

Js对象转JSON数据

JSON.stringify() 返回与指定值对应的JSON字符串

报错了,其实这个错误提示是告诉我们数据有特殊字符;这个错误用此方法常常报的一种错误。看起来代码好像没问题,但是仔细看其实是我的数据用了中文的逗号。

var arr=[
    {"name":"Amy", "sex":"女"age:18} ,
    {"name":"Anna", "sex":"女"age:28} ,
    {"name":"Tom", "sex":"男"age:25} ,
]
var arrStr=JSON.stringify(arr)
console.log(arrStr) //error: Uncaught SyntaxError: Invalid or unexpected token
var arr=[    {"name":"Amy", "sex":"女"} ,    {"name":"Anna", "sex":"女"} ,    {"name":"Tom", "sex":"男"} ]
var arrStr=JSON.stringify(arr)
console.log(arrStr) 

//打印出数据如下
//[{"name":"Amy","sex":"女"},{"name":"Anna","sex":"女"},{"name":"Tom","sex":"男"}]

JSON 转换 JS 对象

JSON.parse() 解析JSON字符串并返回对应的值,实例如上,反过来转换即可

应用场景

1,通过url传参为对象时会用到。在当前页面用JSON.stringify()传数据,在下一个页面接收数据用JSON.parse()转换。

2,vuex 永久保存数据时用把数据存在sessionStorage,获取数据用JSON.parse()转换,存数据时用JSON.stringify()

JSON 与 javaScript 的区别

区别JSONJavaScript
含义只是一种数据格表示类的实例
传输可跨平台数据传输,速度快不能传输
表现键值对方式,键必须加上双引号;值不能是方法函数,不能是undefined/NaN 。键值对方式,键不加引号;值可以是函数、对象、字符串、数字、boolean 等。
相互转换Json转换Js对象,JSON.parse()js对象转换Json,JSON.stringify()

结语:

好了文章到这就结束了,欢迎大家( 点赞+评论+关注 ) 有问题可以来互相交流一下;希望这篇文章对大家有用,也希望大家多多支持我。 今天是我参与2022首次更文挑战的第27天,加油!