codecamp

Node.js NPM JSON

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

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

例子

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

{ 
    "firstName": "CSS", 
    "lastName": "HTML", 
    "isAlive": true, 
    "age": 5, 
    "height_cm": 111.12, 
    "address": {
         "streetAddress": "1234 Main Street", 
         "city": "New York", 
         "state": "NY",
    },
    "phoneNumbers": [ 
        { "type": "home", "number": "222 555-1234" }, 
        { "type": "fax", "number": "666 555-4567" }
    ], 
    "additionalInfo": null 
}

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中我们有

{
   "myData": "this is the value for myData" 
} 

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

var config = require("./config"); 
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对象。

var myData = {
    a: 1, //www.w3cschool.cn
    b: "a string", 
    c: true 
}; 
// convert a JavaScript object to a string 
var json = JSON.stringify(myData); 
console.log(json); 
console.log(typeof json); // string 

// convert a JSON string to a JavaScript object 
var backToJs = JSON.parse(json); 
console.log(backToJs); 
console.log(backToJs.a); // 1 

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

JSON.stringify和JSON.parse

Node.js package.json文件
Node.js NPM
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }