Использовать переменные JavaScript в файле JSON - PullRequest
0 голосов
/ 13 декабря 2018

Я пытаюсь сослаться на собственный ключ в файле JSON в простом приложении Hello World NodeJS.

{
    "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 голосов
/ 13 декабря 2018

это не будет работать в 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);
0 голосов
/ 13 декабря 2018

Это потому, что 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.Если у вас уже есть эта информация, вставляемая в любом случае, это просто еще один шаг, чтобы добавить переменную с таким форматированием.

0 голосов
/ 13 декабря 2018

JSON и Node.js просто так не работают.

Чтобы получить этот эффект, вам нужно что-то вроде:

  1. Чтение необработанногоДанные JSON, используя что-то вроде fs.readFile
  2. Передайте результат через механизм шаблонов
  3. Передайте выходные данные механизма шаблонов через JSON.parse.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...