在JSON文件中使用JavaScript变量

时间:2018-12-13 09:07:55

标签: javascript json object variables

我正在尝试在一个简单的Hello World NodeJS应用程序的JSON文件中引用自密钥。

{
    "person": {
        "first_name": "Aminul",
        "last_name": "Islam"
    },
    "full_name": "{$person.first_name} {$person.last_name}"
}

和应用文件。

const person = require('./app.json');

console.log(person.full_name);

预期结果:

Aminul Islam

结果:

{$person.first_name} {$person.last_name}

3 个答案:

答案 0 :(得分:1)

在JSON中不起作用,这是一个js解决方法

const data = {
  "person": {
      "first_name": "Aminul",
      "last_name": "Islam"
  }
}

data["full_name"] = `${data.person.first_name} ${data.person.last_name}`
module.exports = data

并导入

const person = require('./app.js');

console.log(person.full_name);

答案 1 :(得分:0)

JSON和Node.js根本不能那样工作。

要获得这种效果,您需要遵循以下原则:

  1. 使用fs.readFile之类的内容读取原始JSON数据
  2. 将结果通过template engine
  3. 通过JSON.parse传递模板引擎的输出。

答案 2 :(得分:0)

这是因为JSON不支持使用{$person.first_name}。它将其视为字符串。 JSON不会为您处理,而只是保存数据的一种方法。

您读取JSON数据的方法也有些奇怪。我实际上不知道这对您有什么帮助。更为可靠的方法如下:

var fs = require("fs");
var file = fs.readFileSync("./app.json");
var jsonData = JSON.parse(file);
var person = jsonData.person;
console.log(person.first_name + " " + person.last_name);

您已经定义了数据,无需使用重复的数据扩展JS文件的内容(即使它是另一种格式)。

如果您确实需要这种格式,请在创建JSON时生成该数据。如果您已经插入了该信息,那么再添加具有该格式的变量只是一个步骤。