JavaScript JSON语法 JSON与JS对象的互转

本文介绍了JSON(JavaScript对象表示法)作为通用数据交换格式的基础知识,包括其语法、数组与对象表示,以及如何使用`JSON.stringify()`和`JSON.parse()`进行对象与JSON字符串之间的转换,以及在实际应用中的配置文件操作示例。
摘要由CSDN通过智能技术生成

JSON全称是JavaScript对象表示法,是通用的数据交换格式,许多软件的配置文件均使用JSON文件格式。

可以包括三种语法:

  • 原始值
  • 对象
  • 数组

JSON无法包括如下的数据类型:

  • 集合
  • 映射

JSON语法

JSON存在四组标记符号:

  • 中括号[]表示数组
  • 花括号{}表示键值对
  • 引号包裹住键的名称和字符串类型的键值,键值为数字是不加引号。
  • 逗号区分数组的各个元素和各个键值对

JSON的格式与JavaScript对象(包括数组)的字面量格式非常类似,使用时容易搞混,要注意几个区别:

  • JSON的键必须使用引号包裹,而JavaScript对象的键可以用也可以不用引号包裹。
  • JavaScript对象允许用双斜杠添加注释,而JSON不能添加任何注释。
  • JavaScript允许使用拖尾逗号,而JSON不能使用,逗号只能放在元素之间,不能用在末尾。

将JavaScript对象转换为JSON

要将对象转换为JSON字符串,使用JSON.stringify()方法,例如:

const obj = {a:1, b:2, c:3}

const json = JSON.stringify(obj)  
console.log(json)   //  {"a":1,"b":2,"c":3}

可以在第二个参数中指定一个数组,表示筛选哪些属性进入JSON字符串:

const obj = {a:1, b:2, c:3}

const json = JSON.stringify(obj,['a','c'])  
console.log(json)   //  {"a":1,"c":3}

将JSON序列化为JavaScript对象

可以将JSON序列化为对象,使用JSON.parse()方法。例如:

const json = '{"a":1,"b":2,"c":3}'

const obj = JSON.parse(json)
console.log(obj)

再来看一个例子,从本地的配置文件中读取JSON字符串转化为对象,修改后保存回配置文件。
如下是配置文件settings.json的内容:

{
          "a":1,
  	"b":2,
  	"c":3
}

如下读取配置文件并解析为对象,然后写回配置文件中:

const fs = require('fs')

const json = fs.readFileSync('settings.json','utf8')
const obj = JSON.parse(json)  
console.log(obj)   // { a: 1, b: 2, c: 3 }

obj.a = 2
obj.c = 5
const json2 = JSON.stringify(obj)
fs.writeFileSync('settings.json',json2,'utf8')
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值