Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Can';t使用nodejs访问json对象的属性_Javascript_Json_Node.js - Fatal编程技术网

Javascript Can';t使用nodejs访问json对象的属性

Javascript Can';t使用nodejs访问json对象的属性,javascript,json,node.js,Javascript,Json,Node.js,因此,我试图读取一个json文件并访问文件中写入的属性 该文件是: { “名称”:“SpectrumApp”, “版本”:“0.1.0a”, ‘描述’:‘Lorem ipsum door sit amet,连续的发展精英。Nullam a lectus quis odio semper suscipit。Duis ac placerat mauris,vitae lacinia orci。Fusce ultrices enim ligula,suscipus door sit amet,cons

因此,我试图读取一个json文件并访问文件中写入的属性

该文件是:

{ “名称”:“SpectrumApp”, “版本”:“0.1.0a”, ‘描述’:‘Lorem ipsum door sit amet,连续的发展精英。Nullam a lectus quis odio semper suscipit。Duis ac placerat mauris,vitae lacinia orci。Fusce ultrices enim ligula,suscipus door sit amet,consequest a。Proin posuere aliquam consequat。Proin porttitor ullamcorper ligula。Sed sit at amet dictum erat.Curabitege sem diam.Quisque德雷特、埃吉斯塔斯·莫利斯、埃普斯姆·波特提托·尼布、乌尔纳·乌尔纳·乌尔纳·乌尔纳·乌尔纳·乌尔纳、整只奥奇猫、前庭埃吉特·尼布·乌尔纳、佩伦特斯克式权杖维利特、莫利斯·泰勒斯·梅塞纳、整只康茂德·莫里斯节杖、乌尔纳式节杖、乌尔纳式节杖、乌尔纳节杖、乌尔纳节杖这是一个非常好的例子,它是一个非常好的例子, “密钥”:[“频谱”、“视频游戏”、“便携式”] }

它类似于npm/grunt的package.json。为了读取文件,我使用:

/**
 * JSON
 */
var json = fs.readFileSync(__dirname + '/apps/SpectrumApp/package.json');

log.debug('json = ' + json);
log.debug('json.name = ' + json['name']);
最后,第一个输出与上面相同,第二个输出是“未定义的”,即使我使用json.name。我试过的其他方法是JSON.stringify,然后是JSON.parse,只有JSON.parse。。。但是没有任何效果,当我尝试访问任何属性时,输出都是相同的“未定义”

我做错了什么

非常感谢你

编辑:当我尝试在var JSON中执行JSON.parse时,输出是:

undefined:2
    'name': 'SpectrumApp',
    ^
SyntaxError: Unexpected token '
    at Object.parse (native)
    at Object.<anonymous> (/home/todi/Projetos/Spectrum/src/server/server.js:178:28)
    at Module._compile (module.js:456:26)
    at Object.Module._extensions..js (module.js:474:10)
    at Module.load (module.js:356:32)
    at Function.Module._load (module.js:312:12)
    at Function.Module.runMain (module.js:497:10)
    at startup (node.js:119:16)
    at node.js:902:3
未定义:2
“名称”:“SpectrumApp”,
^
SyntaxError:意外标记'
at Object.parse(本机)
反对。(/home/todi/Projetos/Spectrum/src/server/server.js:178:28)
在模块处编译(Module.js:456:26)
在Object.Module.\u extensions..js(Module.js:474:10)
在Module.load(Module.js:356:32)
在Function.Module.\u加载(Module.js:312:12)
位于Function.Module.runMain(Module.js:497:10)
启动时(node.js:119:16)
在node.js:902:3

在将单引号转换为双引号以获取有效的JSON后,使用
JSON。解析

var jsonString = fs.readFileSync(__dirname + '/apps/SpectrumApp/package.json').replace(/\'/g, "\"")
var json = JSON.parse(jsonString);
或者,如果您的文件已经包含有效的JSON,您可以要求该文件并直接将其作为JSON导入。此方法主要用于配置用途:

var json = require(__dirname + '/apps/SpectrumApp/package.json');

在将单引号转换为双引号以获取有效的JSON后,使用
JSON.parse

var jsonString = fs.readFileSync(__dirname + '/apps/SpectrumApp/package.json').replace(/\'/g, "\"")
var json = JSON.parse(jsonString);
或者,如果您的文件已经包含有效的JSON,您可以要求该文件并直接将其作为JSON导入。此方法主要用于配置用途:

var json = require(__dirname + '/apps/SpectrumApp/package.json');

这是字符串,不是对象。您的文件不是json。请参阅:。名称/键需要双引号。您可以在这里检查json:这是一个字符串,不是一个对象。您的文件不是json。请参阅:。名称/键需要双引号。您可以在这里检查您的json:它实际上不是json。Json必须使用双引号第一种方法对数据有用,第二种方法对配置有用谢谢@AlexeyTen,我根据你的评论更新了我的答案。谢谢@MajidTaheri,我根据你的评论更新了我的答案。我刚刚忘记了双引号!谢谢大家!!很好用!:)它实际上不是一个json。Json必须使用双引号第一种方法对数据有用,第二种方法对配置有用谢谢@AlexeyTen,我根据你的评论更新了我的答案。谢谢@MajidTaheri,我根据你的评论更新了我的答案。我刚刚忘记了双引号!谢谢大家!!很好用!:)