Node.js NPM JSON

NPM使用JSON文件来配置模块。JSON是一种通过网络传输数据的标准格式,是JavaScript对象字面量的子集。对于JSON,必须对JavaScript对象键使用引号。

JSON限制给定键的值。这些值只能是字符串,数字,布尔值(true或false),数组,null,或另一个有效的JSON对象。

例子

以下代码显示了有效的JSON对象。

  1. {
  2. "firstName": "CSS",
  3. "lastName": "HTML",
  4. "isAlive": true,
  5. "age": 5,
  6. "height_cm": 111.12,
  7. "address": {
  8. "streetAddress": "1234 Main Street",
  9. "city": "New York",
  10. "state": "NY",
  11. },
  12. "phoneNumbers": [
  13. { "type": "home", "number": "222 555-1234" },
  14. { "type": "fax", "number": "666 555-4567" }
  15. ],
  16. "additionalInfo": null
  17. }

firstName值是一个字符串,age是一个数字,isAlive是一个布尔值,phoneNumbers是一个有效的JSON对象数组,additionalInfo是null,address是另一个有效的JSON对象。

JSON中的最后一个属性不能有额外的逗号。

在Node.js中加载JSON

我们可以从文件系统加载JSON对象,就像加载JavaScript模块一样。在模块加载序列中的每一次,如果没有找到file.js,Node.js会寻找file.json。如果找到,它返回一个表示JSON对象的JavaScript对象。

在c:/json/filebased/config.js中我们有

  1. {
  2. "myData": "this is the value for myData"
  3. }

以下代码使用require加载JSON数据。

  1. var config = require("./config");
  2. console.log(config.myData); // this is the value for myData

JSON转换器

JSON对象具有将JSON的字符串表示形式转换为JavaScript对象并将JavaScript对象转换为JSON字符串的函数。

要将JavaScript对象转换为JSON字符串,请调用JSON.stringify传递JavaScript对象。此函数返回JavaScript对象的JSON字符串表示形式。

转换JSON字符串转换为JavaScript对象,使用JSON.parse函数,它只是解析JSON字符串并返回一个JavaScript对象。

  1. var myData = {
  2. a: 1,
  3. b: "a string",
  4. c: true
  5. };
  6. // convert a JavaScript object to a string
  7. var json = JSON.stringify(myData);
  8. console.log(json);
  9. console.log(typeof json); // string
  10. // convert a JSON string to a JavaScript object
  11. var backToJs = JSON.parse(json);
  12. console.log(backToJs);
  13. console.log(backToJs.a); // 1

上面的代码生成以下结果。

JSON.stringify和JSON.parse