Почти каждый язык высокого уровня имеет метод toString
для примитивных типов данных, таких как Integer, Float и, возможно, Boolean. Если вы выучили другой язык программирования до того, как попробовали JavaScript или Node.js, вы, вероятно, будете разочаровываться каждый раз, когда ваша интуиция ошибается. Есть некоторые предостережения относительно JS toString
и объектов. Я покажу вам несколько примеров базового кодирования и декодирования JavaScript JSON.
Объект JavaScript в строку
JavaScript также имеет метод toString
для нескольких своих примитивов, однако объект JS toString
разрешит запутанный вывод для начинающих. Скорее всего, вы обнаружите это после того, как уже выполнили .toString()
для экземпляра объекта. Внезапно вы видите этот уродливый результат, который даже не выдает вам ошибку.
Сбивает с толку, верно? Это совершенно нормально. Добро пожаловать в JavaScript. Если вы хотите преобразовать свой объект JS в строку JSON, вам нужно будет использовать метод stringify
для собственного объекта JSON
JavaScript. Это закодирует объект в строку как в веб-браузере, так и в Node.js.
Чтобы получить допустимую строку JSON, вам нужно передать объект JavaScript методу JSON.stringify
. Как вы можете видеть выше, результирующая строка JSON не содержит пробелов. Это оптимально для использования памяти на вашем компьютере, а также пропускной способности, если вы хотите отправить строку через Интернет. Но когда минимизированная строка JSON длинная, человеку нелегко ее читать.
Пример кода средства форматирования JSON
Прежде чем мы рассмотрим противоположную операцию (преобразование строки JSON в объект JS), как можно «привести в строку» объект, чтобы он был отформатирован для удобного восприятия человеком? Вот как мы делаем красивые строки JSON.
Прохождение null
секунд, за которым следует количество пробелов отступа, которое вы хотите, создаст удобочитаемый формат строки JSON. Кроме того, передача кода символа табуляции отформатирует строку JSON с табуляцией.
Разбор JavaScript JSON
Теперь пойдем другим путем. Как бы вы разобрали (или декодировали) строку JSON в объект JavaScript? Это работает как в Node.js, так и в браузерах, если строка JSON действительна.
Вот оно. В JavaScript или Node.js преобразование объекта в строку JSON выполняется легко, если вы знаете, как это сделать. Нет необходимости импортировать библиотеки или устанавливать сторонние зависимости для реализации этой часто необходимой функциональности.
Практика преобразования между строками JSON и объектами в JavaScript требует дополнительных предостережений. Подробнее о таких вещах, как круговые ссылки на объекты и о том, как их передать, будет рассказано в следующих постах.