我是Json和node.js
的新手我正在尝试使用node.js将我的json文件加载到jsonobject中。 但我无法这样做。
我创建了两个文件,一个是server.js
和jsonresponse.json
。我需要使用javascript或node.js在jsonresponse.json
中创建的json对象中加载server.js
。
这是server.js
var file = 'jsonresponse.json'
jsonfile.readFile(file, function(err, obj) {
jsonObject = console.dir(obj);
})
答案 0 :(得分:3)
假设我的json数据位于myDirectry/data.json
//data.json
{
"a":2,
"b":3
}
所以我的myDirectory/app.js
应该是。
var x=require('./data');//or require('data');
console.log(x);
为了阅读,只有require()
已经足够,但您可以使用fs
阅读。但最好的方法是require
。
答案 1 :(得分:1)
虽然以下代码将以过程方式为您提供对象,但您应该记住节点的异步行为。
var jsonfile = require('jsonfile')
var file = 'jsonresponse.json'
var jsonObject = jsonfile.readFileSync(file)
当您从节点开始时,您应该熟悉callback pattern
在您提供的代码段中,文件正在回调中加载,您应该可以在该范围内访问。
var file = 'jsonresponse.json';
var jsonObject;
jsonfile.readFile(file, function(err, obj) {
//on success obj is the data therefore it holds the reference to contents of the file
if(!err){
jsonObject = obj;
}
else console.log(err);
})
使用文件名和回调函数调用 jsonfile.readFile
。一旦完成读取文件的任务,它就会调用带有2个参数的回调函数:error
和data
。
error
为空,否则它包含错误详细信息。
data
包含函数想要返回的任何数据。
答案 2 :(得分:0)
如果您需要避免缓存(调用之间的文件更改),请执行此操作
var fs = require('fs')
var obj = JSON.parse(fs.readFileSync('myfile.json').toString())