Как комментировать в json
Перейти к содержимому

Как комментировать в json

  • автор:

Как писать коментарии в json-конфиге?

Есть конфиг файл в формате json . Нужно закоментировать одну строку и попробовать другое значение. Ну и сопроводиловку для будущего себя накатать. Какой знак за это отвечает?

Отслеживать
задан 13 сен 2016 в 6:19
don Rumata don Rumata
4,195 3 3 золотых знака 19 19 серебряных знаков 41 41 бронзовый знак

Сам по себе json может содержать коментарии(только никто так не делает) зависит от парсера. Лично сталкивался с json содержащим // или /**/ коментарии.

18 окт 2018 в 13:18

Я не про костыли. Я именно про общепринятый стандарт. Понятно, что можно даже синтаксис полностью переделать с парсером вместе. И всем говорить, что это немного другой json.

18 окт 2018 в 20:55

В общепринятом стандарте json не предусмотрены комментарии. Однако даже .NET Newtonsoft.Json спокойно их проглатывает — <"key":"value" // comment>не вызовет ошибки парсинга. правда тут стоит понимать что другой парсер может оказаться менее лояльным.

Как комментировать файлы JSON

Если у вас возникли проблемы с добавлением комментариев к файлу JSON, на то есть веская причина: JSON не поддерживает комментарии.

“Я убрал комментарии из JSON, потому что увидел, что люди используют их для парсинга директив — практика, которая разрушила бы совместимость”, — пишет Дуглас Крокфорд, популяризировавший текстовый формат данных.

Однако есть и обходной путь. И эта статья посвящена именно ему.

Добавляйте данные в виде комментариев

Чтобы обойти проблему комментариев, добавьте в свой файл JSON данные, которые функционируют как комментарии.

Давайте рассмотрим это на примере. Начнем с файла JSON, в котором содержится следующая информация:

 "sport": "basketball", 
"coach": "Joe Smith",
"wins": 15,
"losses": 5
>

Теперь давайте добавим еще одну пару ключ-значение, чтобы она служила для нас комментарием — как вы можете видеть в первой строке кода ниже:

 "_comment1": "здесь мой комментарий", 
"sport": "basketball",
"coach": "Joe Smith",
"wins": 15,
"losses": 5
>

Вот еще один пример. На этот раз мы используем два подчеркивания — в начале и в конце ключа:

"__comment2__": "здесь другой комментарий",

Подчеркивание помогает отличить комментарий от остальных данных в файле.

Небольшое предостережение

Есть одна важная деталь, которую нужно иметь в виду.

Комментарии, которые мы добавили в файл JSON, включены в объект JSON. Другими словами, комментарии рассматриваются как данные.

Вот что имеется в виду.

 "_comment1": "здесь мой комментарий", 
"sport": "basketball",
"coach": "Joe Smith",
"wins": 15,
"losses": 5
>

Теперь мы собираемся прочитать эти данные из файла read_comments.py :

import json
with open("data.json", mode="r") as j_object:
data = json.load(j_object)
print(data)

Результат включает в себя наш комментарий:

Мы даже можем извлечь значение комментария из объекта JSON: this is my comment :

import json 

with open("data.json", mode="r") as j_object:
data = json.load(j_object)
print(data["_comment1"])

Имейте в виду, что такой комментарий является комментарием только в глазах разработчика, а не компьютера.

Другой тип комментария

Эта практика комментирования JSON отличается от комментариев в языках программирования, таких как Python, которые обычно игнорируются при запуске программы.

# Здесь мой комментарий
word = "house"
for letter in word:
print(letter)

Когда мы запускаем программу Python, приведенную выше, мы получаем буквы в слове “house”. Но мы не видим комментария. Он был проигнорирован.

Варианты комментирования

JSMin — это еще один вариант, стоящий рассмотрения.

Это инструмент, который удаляет лишние пробелы и комментарии из файлов JavaScript. Но он также работает и с файлами JSON. JSMin удаляет комментарии из файлов JSON до того, как они будут обработаны.

Таким образом, когда речь заходит о комментировании в файлах JSON, у вас есть варианты. Хотя эти решения и не идеальны, но по крайней мере дают возможность включить необходимую документацию, когда она вам нужна.

  • 3 фундаментальных постулата JS, приближающих вас к Pro-статусу
  • Добро пожаловать в ад…зависимостей JavaScript
  • Движок JavaScript: что внутри

Как комментировать в json

Как писать комментарии в JSON-файле? Некоторых аналитиков этот вопрос приводит в замешательство, и они либо признаются сразу, что не знают/не помнят, либо начинают что-то сочинять на ходу 🙂 Кто-то при этом может вспомнить про экранирование спец-символов.

Комментарии в json

На самом деле формат JSON не предусматривает добавление комментариев. JSON — это только данные.

Для чего нужны комментарии? — Чтобы объяснить вещи, которые могут быть не очевидными.

Если вам очень хочется добавить некий комментарий в JSON, то в этом случае нужно добавить дополнительные данные в одном из поддерживаемых форматов. Например, добавить в структуру JSON дополнительный параметр, назвав его «_comment» (или как-то иначе), а значение этого параметра как раз и будет текстом комментария:

Соответственно, все приложения, использующим данные этого JSON, должны игнорировать этот параметр.

Минус данного подхода: не возможно написать комментарий для определенных параметров структуры JSON, только некий общий.

Использование комментариев в JSON с примерами 2 мин для чтения

Учебник комментариев в JSON с примерами

О дин из наиболее часто задаваемых вопросов, связанных с JSON: «Можем ли мы создавать или использовать комментарии в формате данных JSON?». Ответ на этот вопрос немного сложнее, когда мы можем, да или нет. Мы ответим, можем ли мы создавать и использовать комментарии в JSON в этой статье со всех точек зрения.

Формально мы не можем создать комментарий в JSON

Начнем с плохих новостей. Официальное определение или стандарт JSON не поддерживает комментарии. В качестве простого формата данных стандартный комитет, хотя это не является необходимым для создания комментариев в формате данных.

Комментарии в JSON5

JSON5 — это неофициальный стандарт, созданный разработчиками и опубликованный в GitHub. с помощью JSON5 создаются некоторые расширения стандарта JSON. Одним из них являются комментарии, которые поддерживаются JSON5. Согласно JSON5 допускаются одно- и многострочные комментарии. Вот пример комментариев JSON5. Мы видим, что //это используется для создания однострочного комментария, где /* и */используется для создания многострочного комментария.

< //Используется имя. Укажите имя пользователя "firstName":"AndreyEx", "lastName":"Destroyer", "age":21, "birth":"1998-05-22", /* Адресный блок предоставляет полный адрес пользователя */ "address":< "streetAddress":"Krasnayа Street", "city":"Krasnodar", "state":"Krasnodar Kray", "postalCode":350035 >, "phoneNumbers":[ < "type":"home", "number":"8 999 99-99-99" >, < "type":"fax", "number":"8 888 88-88-88" >] >

Использование элемента данных _comment для комментариев

Поскольку JSON официально не поддерживает комментарии, но разработчики очень нуждаются в комментариях, они создают альтернативные способы создания комментариев. Одним из них является использование элемента данных _comment внутри данных JSON, как показано ниже.

< "_comment":"Используется имя. Укажите имя пользователя", "firstName":"AndreyEx", "lastName":"Destroyer", "age":21, "birth":"1998-05-22", "_comment":"Адресный блок предоставляет полный адрес пользователя", "address":< "streetAddress":"Krasnayа Street", "city":"Krasnodar", "state":"Krasnodar Kray", "postalCode":350035 >, "phoneNumbers":[ < "type":"home", "number":"8 999 99-99-99" >, < "type":"fax", "number":"8 888-88-88" >] >

Использование комментария. Элемент данных для комментария

Мы также можем использовать непосредственно comment как элемент данных, который очень похож на _comment.

< "comment":"Используется имя. Укажите имя пользователя", "firstName":"AndreyEx", "lastName":"Destroyer", "age":21, "birth":"1998-05-22", "comment":"Адресный блок предоставляет полный адрес пользователя", "address":< "streetAddress":"Krasnayа Street", "city":"Krasnodar", "state":"Krasnodar Kray", "postalCode":350035 >, "phoneNumbers":[ < "type":"home", "number":"8 999 99-99-99" >, < "type":"fax", "number":"8 888-88-88" >] >/

Использование / * */ и // C и C ++ как комментарии

Даже JSON5 поддерживает однострочные // комментарии, а /* */ — многострочные комментарии обычные JSON не поддерживают. Мы можем использовать их, как показано ниже.

< // Используется имя. Укажите имя пользователя "firstName":"AndreyEx", "lastName":"Destroyer", "age":21, "birth":"1998-05-22", // Адресный блок предоставляет полный адрес пользователя "address":< "streetAddress":"Krasnayа Street", "city":"Krasnodar", "state":"Krasnodar Kray", "postalCode":350035 >, "phoneNumbers":[ < "type":"home", "number":"8 999 99-99-99" >, < "type":"fax", "number":"8 888-88-88" >] >

Читать Что такое целевая страница и как ее создать в 2020 году. Часть 3

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *