欢迎光临散文网 会员登陆 & 注册

初入JSON,JSON的入门

2020-11-28 11:34 作者:每天一个秃顶小技巧  | 我要投稿

JSON的一些基本概念

JSON不是一门编程语言,它更应该被理解为一种数据格式,JSON也不属于JavaScript,也不是只能在JavaScript中使用,它是一种通用的数据格式,很多语言都有解析和序列化JSON的内置能力。
本文基于JavaScript来介绍JSON的一些基本知识。

JSON语法

JSON语法支持3种类型的值

  • 简单值:字符串、数值、布尔值和null可以在JSON中出现。特殊地,undefined不可以。

  • 对象:一种复杂数据类型,对象表示有序键/值对。每个值可以是简单值,也可以是复杂类型。

  • 数组:一种复杂数据类型,数组表示可以通过数值索引访问值的有序列表。数组的值可以是任意类型,包括简单值、对象、甚至其他数组。

简单值

例如:下面这个数值是有效的JSON:

3

下面这个字符串也是有效的JSON:

“hellow JSON!”

JOSN中的字符串必须使用双引号,单引号则会导致语法错误。

对象

在JSON中,对象与JavaScript中的表示有一些不同,下面是JSON中对象的一个例子:

{ "name": "name", "age": 19 }

对象由一对大括号包围。首先,JSON中的对象没有变量声明(JSON中没有变量),其次,最后没有分号(不需要)。同时,属性名需要用双引号包围起来,不同的属性用逗号分隔,且最后一个属性后不能有逗号。属性的值还可以是复杂数据类型,例如:

{ "name": "name", "age": 19 "school": { "name: "name", "type": "university" } }

上述例子中在顶级对象中又嵌入了一个对象,即使整个JSON中有两个属性都叫name,但它们属于两个不同的对象,因此是允许的,但是同一个对象中不能出现两个相同的属性。

数组

数组同样是一种复杂的数据类型,由一对中括号包围,和对象有一定类似性,每一个元素需要用逗号隔开,最后一个元素后不能有空格,如下:

[ 25, "hi", true, { "name": "name", "age": 19 } ]

对象和数组通常会作为JSON的顶级结构(尽管不是必须的),以便创建大型复杂数据结构。

JSON对象

JSON对象是JavaScript中的全局对象。它有两个方法stringify()parse().在简单的情况下,这两个方法分别可以将JavaScript序列化为JSON字符串,以及将JSON解析为原生JavaScript值。

JSON.stringify()

stringify()方法接收一个JavaScript对象转化为一个JSON字符串:

let book = { title: "JavaScript高级程序设计", year: 2020 }; let jsonText = JSON.stringify(book); console.log(jsonText); //输出 //{"title":"JavaScript高级程序设计","year":2020}

如果某个对象中有自定义的toJSON方法,那么stringify()方法就会优先调用toJSON方法:

let obj = {    name: "name",    age: 19,    toJSON: function() {        return this.name;    } } let jsonText = JSON.stringify(obj); console.log(jsonText); //结果: "name"

这个方法还有第二个参数,在此暂不作深入。

JSON.parse()

parse()方法接收一个JSON字符串,解析成一个JavaScript对象:

let jsonText = '{"title":"JavaScript高级程序设计","year":2020}' let book = JSON.parse(book); console.log(book); //结果 //book对象

来源:CSDN
作者:im_pcy
原文:初入JSON,JSON的入门_moreerom的博客-CSDN博客
了解相关知识可以点击:

尚学堂最新2020版Java300集教程课程


初入JSON,JSON的入门的评论 (共 条)

分享到微博请遵守国家法律