JSON格式说明

  • 并列的数据之间用逗号(”, “)分隔。

  • 映射用冒号(”: “)表示。

  • 并列数据的集合(数组)用方括号(“[]”)表示。

  • 映射的集合(对象)用大括号(”{}”)表示。

以上四点,就是JSON格式的所有内容(完全颠覆了我初次接触JSON时对于JSON的认知,一直以为JSOn的定义就是什么对象与数组的嵌套)

JSON对象的转化及引用

JSON对象的转化
  1. 引用fs文件系统模块
  2. 使用fs.readFileSync()方法引用到对应的JSON文件
  3. 使用JSON.parse()方法,将引用到的json文件内容转化为JSON对象
  4. 使用exports方法将这个JSON对象暴露出去
var fs = require("fs");
var contents = fs.readFileSync("mockData/mockData.json");
var data = JSON.parse(contents);
exports.requests = data.requests;
JSON对象的引用
  1. 引用path文件路径模块
  2. 使用require和path.resolve方法引入转化JSON对象的JS文件
  3. 此时已经可以引用之前exports方法暴露出去的数据
var path = require('path');
mockData = require(path.resolve('./mockData'));
user = mockData.requests.users.user[0];

此时我们已经直接可以使用JSON对象中的所有数据。

坑点:

如果直接用一个等号取到json对象中的值,

user = mockData.requests.users.user[0];

user只是指向这个对象,而不是复制了这个对象。所以当user发生改变时,我们引用的JSON数据的值也会发生变化,但是JSON数据本身不会发生变化,因为我们引用及改变的是JSON转化为的JSON对象。

解决上述坑点请移步

GitHub 加速计划 / js / json
18
5
下载
适用于现代 C++ 的 JSON。
最近提交(Master分支:3 个月前 )
2d42229f * Support BSON uint64 de/serialization Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> * Treat 0x11 as uint64 and not timestamp specific Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> --------- Signed-off-by: Michael Valladolid <mikevalladolid@gmail.com> 4 天前
1809b3d8 Signed-off-by: Niels Lohmann <mail@nlohmann.me> 4 天前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐