Хобрук: Ваш путь к мастерству в программировании

Локальный файл формы Get-Json

Я работаю над небольшим сервером (среда NodeJS), чтобы получить данные JSON из URL-адреса и локального файла для их сравнения.

Я использую «get-json», чтобы загрузить JSON из URL-адреса и получить некоторые значения, к сожалению, это не работает для локального файла.

Я тоже пробовал это с «запросом».

var getJSON = require('get-json')
var localpath = "./location/file.json"

getJSON(localpath, function(data, allowed_content) {
  var a = allowed_content[0].age;
  var b = allowed_content[1].age;
  var c = allowed_content[2].age;
  var d = allowed_content[5].age;
  var e = allowed_content[6].age;
});

Я не могу понять, почему локальный путь не работает.

29.07.2019


Ответы:


1

Вы можете просто использовать функцию fetch.

var localpath = "./location/file.json"
    fetch(localpath)
    .then(response => response.json())
    .then(json => {
      console.log(json);
    }); 
29.07.2019

2

tl;dr не используйте get-json для чтения локальных файлов, а используйте readFile

get-json предназначен для сетевого запроса, его документы говорят, что он охватывает requests в узле и использует JSONP в браузере. Чтобы прочитать локальный файл, просто используйте readFile или readFileSync:

var { readFileSync } = require("fs");
var localPath = "";
var localFile = readFileSync(localPath, "utf8"); // utf8 is opts and depends on your setup, the async version of readFile takes a callback as last argument
console.log(JSON.parse(localFile));
29.07.2019
  • Это работает, теперь мне нужно выяснить, как я могу получить конкретные значения из значения. например, allow_content[6].age 29.07.2019
  • Не уверен, что я следую за тобой. Вызов JSON.parse для строки должен вернуть объект JS (или вызвать ошибку). Назовите выход allowed_content, и вы сможете получить доступ ко всем его свойствам, используя обычный синтаксис. 29.07.2019
  • Я имею в виду, что мне нужны конкретные значения из файла JSON. Я попробую разобраться. В очередной раз благодарим за помощь! 29.07.2019
  • Ах, удачи с этим. Если у вас есть проблема с ограничением памяти, вас может заинтересовать oboejs.com, который представляет собой потоковую библиотеку json. Если мой ответ в порядке, вы можете его принять? 29.07.2019

  • 3

    На самом деле решение было очень простым:

    var myvar = require('./filepath/myfile.json');
    var a = myvar[0].age;
    var b = myvar[1].age;
    var c = myvar[2].age;
    var d = myvar[5].age;
    var e = myvar[6].age;
    
    30.07.2019
    Новые материалы

    Dall-E 2: недавние исследования показывают недостатки в искусстве, созданном искусственным интеллектом
    DALL-E 2 — это всеобщее внимание в индустрии искусственного интеллекта. Люди в списке ожидания пытаются заполучить продукт. Что это означает для развития креативной индустрии? О применении ИИ в..

    «Очень простой» эволюционный подход к обучению с подкреплением
    В прошлом семестре я посетил лекцию по обучению с подкреплением (RL) в моем университете. Честно говоря, я присоединился к нему официально, но я редко ходил на лекции, потому что в целом я нахожу..

    Освоение информационного поиска: создание интеллектуальных поисковых систем (глава 1)
    Глава 1. Поиск по ключевым словам: основы информационного поиска Справочная глава: «Оценка моделей поиска информации: подробное руководство по показателям производительности » Глава 1: «Поиск..

    Фишинг — Упаковано и зашифровано
    Будучи старшим ИТ-специалистом в небольшой фирме, я могу делать много разных вещей. Одна из этих вещей: специалист по кибербезопасности. Мне нравится это делать, потому что в настоящее время я..

    ВЫ РЕГРЕСС ЭТО?
    Чтобы понять, когда использовать регрессионный анализ, мы должны сначала понять, что именно он делает. Вот простой ответ, который появляется, когда вы используете Google: Регрессионный..

    Не зря же это называют интеллектом
    Стек — C#, Oracle Опыт — 4 года Работа — Разведывательный корпус Мне пора служить Может быть, я немного приукрашиваю себя, но там, где я живу, есть обязательная военная служба на 3..

    LeetCode Проблема 41. Первый пропущенный положительный результат
    LeetCode Проблема 41. Первый пропущенный положительный результат Учитывая несортированный массив целых чисел, найдите наименьшее пропущенное положительное целое число. Пример 1: Input:..