Создание «читаемого» формата JSON

Я использую Node.js и новичок в этом программном обеспечении. Однако это то, что беспокоило меня с тех пор, как я был ванильным интерфейсом. У меня простой поток html.get

https.get(url, (res)=>{
    res.setEncoding('utf8');
    let body = '';
    res.on('data', (data)=>{
        body += data;
    });

    res.on('end', ()=>{
        body = JSON.parse(body);
        //console.info(typeof body);
        callback(body);
    })
})

с функцией обратного вызова, просто возвращающей файл на мою веб-страницу

 function callback(body){
    res.send(body);
}

Проблема, с которой я столкнулся, заключается в том, что файл, который я отправляю на свой сервер, то есть var = body, заключается в том, что файл ... не легко читается. Я не уверен, что это имеет полный смысл, поэтому это может быть лучшим объяснением:

Вот чего я хочу:

{
"title": "Google Custom Search - lectures",
"totalResults": "970000000",
"searchTerms": "lectures",
"count": 10,
"startIndex": 11,
"inputEncoding": "utf8",
"outputEncoding": "utf8",
"safe": "off",
"cx": "[REDACTED]"
}

со всеми пробелами нетронутыми. Это то, что дает URL для получения. Однако после его получения и объединения / анализа с моим алгоритмом я получаю:

{"title":"Google Custom Search - lectures","totalResults":"970`0000","searchTerms":"lectures","count":10,"startIndex":11,"inputEncoding":"utf8","outputEncoding":"utf8","safe":"off","cx":"[REDACTED]"}]}

без пробелов и прочего. Это просто выходит в виде «блоков текстов». Я (НАДЕЖДА) я сделал что-то не так, и есть способ сохранить исходный формат, когда я использую вызов html.get.

Мой первоначальный план состоял в том, чтобы использовать некоторую «магию регулярных выражений», чтобы отформатировать его, чтобы он стал более читабельным, но я надеюсь, что должен быть другой способ, учитывая, что исходный URL-адрес отформатировал его правильно. Я имею дело с большим файлом JSON, поэтому было бы неплохо использовать более читаемый формат. Я не уверен, правильно ли я объяснил свой сценарий, это мой первый вопрос по стеку, но если нет, пожалуйста, дайте мне знать. Спасибо!

проверьте это: stackoverflow.com/questions/4810841/…

Gil 18.04.2018 07:53

Это была тема, в которой я только что был. Я полагаю, что «магия регулярных выражений» - единственный верный ответ на этот вопрос, да.

pandey 18.04.2018 07:59

Смотрите здесь: stackoverflow.com/questions/19696240/…

vincent 18.04.2018 08:01

JSON.stringify (body, null, 4) или около того должен помочь - на мой взгляд, - но он по-прежнему не работает должным образом. Может быть, когда я конкатенирую что-то пойдет не так. Я иду спать, но, может быть, он щелкнет, когда я проснусь завтра.

pandey 18.04.2018 08:14
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
4
54
1

Ответы 1

Вы можете написать простую функцию для форматирования JSON так, как вы хотите. Возможно, вам понадобится другой формат ведения журнала, а не веб-страница и т. д. Это обертывает метод JSON.stringify (хорошо документированный здесь:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify и здесь:
https://www.w3schools.com/js/js_json_stringify.asp.

var data = {"title":"Google Custom Search - lectures","totalResults":"970`0000","searchTerms":"lectures","count":10,"startIndex":11,"inputEncoding":"utf8","outputEncoding":"utf8","safe":"off","cx":"[REDACTED]"};

function prettyPrintJSON(data, space = 2) {
    return JSON.stringify(data, null, space);
}
console.info(prettyPrintJSON(data));

Результат будет выглядеть так:

{
  "title": "Google Custom Search - lectures",
  "totalResults": "970`0000",
  "searchTerms": "lectures",
  "count": 10,
  "startIndex": 11,
  "inputEncoding": "utf8",
  "outputEncoding": "utf8",
  "safe": "off",
  "cx": "[REDACTED]"
}

Вот пример JSFiddle:

https://jsfiddle.net/uovtaxq3/3/

Спасибо! Это не совсем то, что мне было нужно, но это помогло мне разобраться в моей проблеме. Пробел из get записывался в мой проанализированный JSON как </br> и \ n. Просто изменив res.send () на res.write (), удалось это исправить.

pandey 18.04.2018 15:04

Другие вопросы по теме