当前位置:网站首页>关于NodeJS中JSON5的相关配置和使用

关于NodeJS中JSON5的相关配置和使用

2022-04-23 14:05:00 森之千手

前言

JSON5是JSON的一个扩展子集。因此它完全兼容老JSON,并且还有自己独有的特性:

  • 支持注释
  • 不强求双引号,可以使用单引号
  • 键值对的键可以不用双引号括起来
  • 允许最后一个元素还可以跟加逗号

举个例子,正常的json长这个样子:

[
  {
    
    "name": "Frank",
    "age": 16,
    "gender": "male",
    "isAdult": false
  },
  {
    
    "name": "Bob",
    "age": 22,
    "gender": "male",
    "isAdult": true
  }
]

使用json5后就变成了这个样子:

/*这是一个json5测试*/
[
  {
    
    name: "Frank",//姓名
    age: 16,//年龄
    gender: "male",
    isAdult: false
  },
  {
    
    name: "Bob",
    age: 22,
    gender: "male",
    isAdult: true
  },
]

这样就极大扩展了JSON的可读性。

如何使用

下面就来讲讲如何在一个NodeJS项目里面使用JSON5。

1、安装JSON5的依赖

npm install json5 --save

2、新建后缀名为json5的文件,例如我们新建一个‘tt.json5’

json5
往里面填入上述内容

3、读取

我们安装的json5实际上也有parse和stringify两个方法,这两个方法,对于js开发的同学来说,再熟悉不过了。其实我们更常用的是parse这个反序列化方法。stringify的话,用自带的JSON也能实现。

import parse = require('./parse')
import stringify = require('./stringify')

export {
    parse, stringify}

nodeJS里面可以使用自带的fs进行读文件:

const fs=require('fs')
const JSON5 =require('json5')
fs.open('./tt.json5','r+',(err,d)=>{
    
    fs.readFile('./tt.json5','utf-8',(err,data)=>{
    
        console.log(JSON5.parse(data))
    })
})

从文件读出来的是string,所以我们调用parse方法进行反序列化。
如果你不想用require,反而想用import引入,也行。

(1)如果node的版本小于13

准确来说,是小于13.2.0的话,需要自行安装babel转码,相关配置参考:
Node.js 使用 Babel 完美配置 ES6+

(2)如果node版本大于13

需要在package.json里面的含有name属性(一般为第一个)的object里增加

"type": "module"

否则会报:

SyntaxError: Cannot use import statement outside a module

现在可以愉快地引入了:

import * as fs from 'fs'
import JSON5 from 'json5'
fs.open('./tt.json5','r+',(err,d)=>{
    
    console.log(d)
    fs.readFile('./tt.json5','utf-8',(err,data)=>{
    
        console.log(JSON5.parse(data))
    })
})

注意:

import JSON5 from 'json5'

这里的JSON5相当于你取了个别名,你就算写成AA也行。

至此,用法介绍完结。

版权声明
本文为[森之千手]所创,转载请带上原文链接,感谢
https://blog.csdn.net/cjs1534717040/article/details/122209966