Форматувач та Beautifier JSON: Красивий вивід JSON з відступами
Форматуйте та покращуйте ваші дані JSON з правильними відступами. Робить сирий JSON читабельним з підсвічуванням синтаксису та валідацією.
Форматувач JSON
Форматуйте та покращуйте свій JSON за допомогою цього простого інструменту
Форматований JSON з'явиться тут...
Документація
JSON Форматер
Вступ
JSON (JavaScript Object Notation) — це легкий формат обміну даними, який став стандартом для обміну даними в веб-додатках. Незважаючи на свою простоту, дані JSON можуть стати важкими для читання, коли вони зменшені або не мають належного форматування. Цей інструмент допомагає вам перетворити сирі, неформатовані рядки JSON у добре структурований, відформатований вигляд, який значно легше читати та аналізувати.
Форматування JSON (також відоме як "красиве друкування") додає послідовний відступ, розриви рядків і пробіли, щоб візуально представити ієрархічну структуру даних JSON. Це особливо цінно при роботі зі складними вкладеними об'єктами або великими наборами даних, де зв'язки між елементами інакше можуть бути важко розпізнати.
Наш інструмент форматування JSON надає простий інтерфейс для покращення вашого JSON-даних з належним відступом і структурою, роблячи його більш читабельним для людей, зберігаючи його дійсність для машин.
Синтаксис і структура JSON
JSON побудований на двох основних структурах:
- Об'єкти: Колекції пар ім'я/значення, що містяться в фігурних дужках
{}
. Кожне ім'я супроводжується двокрапкою:
і пари відокремлюються комами,
.
1 {"name": "John", "age": 30, "city": "New York"}
2
- Масиви: Упорядковані списки значень, що містяться в квадратних дужках
[]
. Значення відокремлюються комами,
.
1 ["apple", "banana", "cherry"]
2
Значення JSON можуть бути:
- Рядками (в подвійних лапках):
"Hello World"
- Числами:
42
або3.14159
- Булевими:
true
абоfalse
- Null:
null
- Об'єктами:
{"key": "value"}
- Масивами:
[1, 2, 3]
Правильний JSON повинен дотримуватися цих синтаксичних правил:
- Імена повинні бути рядками в подвійних лапках
- Значення повинні бути одним із дійсних типів даних JSON
- Не допускаються коми в кінці
- Коментарі не дозволені
- Функції або методи не дозволені
Загальні синтаксичні помилки включають:
- Відсутні або невідповідні дужки/фігурні дужки
- Відсутні лапки навколо імен властивостей
- Використання одинарних лапок замість подвійних
- Наявність ком у кінці
- Використання невизначених як значення
Як працює форматування JSON
Форматування JSON перетворює компактний, зменшений JSON у більш читабельну форму шляхом:
-
Парсинг: Рядок JSON спочатку розбирається, щоб забезпечити його дійсність і створити представлення даних у пам'яті.
-
Відступ: Кожен вкладений рівень об'єктів і масивів відступає (зазвичай на 2 або 4 пробіли), щоб візуально представити ієрархію.
-
Розриви рядків: Нові рядки додаються після кожної властивості або елемента масиву для покращення читабельності.
-
Пробіли: Додаються послідовні пробіли навколо двокрапок і ком.
Наприклад, цей зменшений JSON:
1{"name":"John Doe","age":30,"address":{"street":"123 Main St","city":"Anytown","state":"CA"},"hobbies":["reading","hiking","photography"]}
2
Стає таким відформатованим JSON:
1{
2 "name": "John Doe",
3 "age": 30,
4 "address": {
5 "street": "123 Main St",
6 "city": "Anytown",
7 "state": "CA"
8 },
9 "hobbies": [
10 "reading",
11 "hiking",
12 "photography"
13 ]
14}
15
Наш форматер використовує стандартний відступ у 2 пробіли на рівень, що є загальноприйнятою конвенцією в розробницькому співтоваристві та забезпечує гарний баланс між компактністю та читабельністю.
Валідація JSON
Критичним аспектом форматування JSON є валідація. Перш ніж JSON можна відформатувати, він повинен бути синтаксично дійсним відповідно до специфікації JSON. Загальні помилки валідації включають:
-
Синтаксичні помилки:
- Непідписані назви властивостей
- Відсутні або зайві коми
- Неправильно вкладені структури
- Непідписані рядки, об'єкти або масиви
-
Помилки типу даних:
- Використання специфічних для JavaScript значень, таких як
undefined
абоNaN
- Включення функцій або методів
- Використання одинарних лапок для рядків
- Використання специфічних для JavaScript значень, таких як
Коли ви стикаєтеся з недійсним JSON, повідомлення про помилку може допомогти виявити проблему. Більшість парсерів JSON вкажуть позицію, де парсинг зазнав невдачі, що може допомогти виявити проблему. Наш інструмент надає чіткі повідомлення про помилки, щоб допомогти вам виявити та виправити проблеми у ваших даних JSON.
Сценарії використання
Форматування JSON є цінним у багатьох ситуаціях:
Розробка та тестування API
При роботі з RESTful API відформатований JSON полегшує:
- Перегляд відповідей
- Налагодження тіл запитів
- Документування прикладів API
- Перевірка структури даних на відповідність очікуванням
Управління конфігурацією
Багато сучасних додатків використовують JSON для конфігурації:
- Файли налаштувань додатків
- Конфігурації середовища
- Специфікації збірки та розгортання
- Шаблони Інфраструктури як Код (наприклад, AWS CloudFormation, Terraform)
Аналіз даних та візуалізація
Відформатований JSON допомагає, коли:
- Дослідження наборів даних
- Підготовка даних для візуалізації
- Розуміння схем даних
- Виявлення шаблонів у структурованих даних
Налагодження та усунення неполадок
Правильно відформатований JSON є важливим, коли:
- Налагодження веб-додатків
- Перегляд localStorage або sessionStorage
- Аналіз відповідей мережі
- Усунення проблем з інтеграцією даних
Освітні цілі
Чітке форматування JSON є цінним для:
- Викладання структур даних
- Демонстрації вкладених відносин
- Пояснення концепцій API
- Ілюстрації принципів моделювання даних
Альтернативи
Хоча наш веб-інструмент форматування JSON зручний для швидких завдань форматування, існує кілька альтернатив для різних сценаріїв:
Інструменти розробника браузера
Сучасні браузери включають можливості форматування JSON:
- DevTools Chrome та Edge автоматично форматують відповіді JSON на вкладці Мережа
- Переглядач JSON Firefox надає інтерактивний деревоогляд
- Розширення браузера, такі як JSONView, можуть форматувати JSON безпосередньо в браузері
Редактори коду та IDE
Більшість середовищ розробки пропонують форматування JSON:
- Visual Studio Code має вбудоване форматування JSON (Alt+Shift+F)
- IDE JetBrains (WebStorm, IntelliJ) включають потужні інструменти JSON
- Sublime Text та Atom підтримують форматування JSON через плагіни
Інструменти командного рядка
Для користувачів терміналу або автоматизації:
jq
— це потужний процесор JSON командного рядкаjson_pp
постачається попередньо встановленим на багатьох системах Unixpython -m json.tool
забезпечує швидке форматування за допомогою Python
Програмні підходи
Коли потрібно форматувати JSON у додатках:
1// JavaScript
2const formatted = JSON.stringify(jsonObject, null, 2);
3
1# Python
2import json
3formatted = json.dumps(json_object, indent=2)
4
1// Java з Gson
2Gson gson = new GsonBuilder().setPrettyPrinting().create();
3String formatted = gson.toJson(jsonObject);
4
1# Ruby
2require 'json'
3formatted = JSON.pretty_generate(json_object)
4
1// PHP
2$formatted = json_encode($jsonObject, JSON_PRETTY_PRINT);
3
Історія
JSON був створений Дугласом Крокфордом на початку 2000-х років як легка альтернатива XML. Формат був похідним від синтаксису об'єктних літералів JavaScript, але розроблений для незалежності від мови. У 2006 році JSON був формально специфікований у RFC 4627, і він швидко набрав популярності завдяки своїй простоті та сумісності з JavaScript.
Перед JSON XML був домінуючим форматом для обміну даними, але його громіздкість і складність робили його незручним для багатьох застосувань. JSON запропонував більш стиснутий синтаксис, який був легшим для читання та написання як для людей, так і для машин. Він також ідеально відповідав об'єктній моделі JavaScript, що робило його природним вибором для веб-додатків.
Прийняття JSON прискорилося з підйомом AJAX та RESTful API в середині 2000-х років. До 2010-х років він став стандартом для веб-API, файлів конфігурації та зберігання даних у NoSQL базах даних, таких як MongoDB та CouchDB.
Сьогодні JSON підтримується практично кожною мовою програмування та використовується в безлічі застосувань в Інтернеті. Його простота, гнучкість та універсальна підтримка зробили його одним з найважливіших форматів даних у сучасних обчисленнях.
Приклади коду
Ось приклади того, як форматувати JSON на різних мовах програмування:
1// Форматування JSON на JavaScript
2function formatJSON(jsonString) {
3 try {
4 const parsedData = JSON.parse(jsonString);
5 return JSON.stringify(parsedData, null, 2);
6 } catch (error) {
7 return `Помилка: ${error.message}`;
8 }
9}
10
11// Приклад використання
12const rawJSON = '{"name":"John","age":30,"city":"New York"}';
13console.log(formatJSON(rawJSON));
14
1# Форматування JSON на Python
2import json
3
4def format_json(json_string):
5 try:
6 parsed_data = json.loads(json_string)
7 return json.dumps(parsed_data, indent=2)
8 except json.JSONDecodeError as e:
9 return f"Помилка: {str(e)}"
10
11# Приклад використання
12raw_json = '{"name":"John","age":30,"city":"New York"}'
13print(format_json(raw_json))
14
1// Форматування JSON на Java з Gson
2import com.google.gson.Gson;
3import com.google.gson.GsonBuilder;
4import com.google.gson.JsonSyntaxException;
5
6public class JSONFormatter {
7 public static String formatJSON(String jsonString) {
8 try {
9 Gson gson = new GsonBuilder().setPrettyPrinting().create();
10 Object parsedJson = gson.fromJson(jsonString, Object.class);
11 return gson.toJson(parsedJson);
12 } catch (JsonSyntaxException e) {
13 return "Помилка: " + e.getMessage();
14 }
15 }
16
17 public static void main(String[] args) {
18 String rawJSON = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
19 System.out.println(formatJSON(rawJSON));
20 }
21}
22
1// Форматування JSON на PHP
2function formatJSON($jsonString) {
3 $result = json_decode($jsonString);
4 if (json_last_error() !== JSON_ERROR_NONE) {
5 return "Помилка: " . json_last_error_msg();
6 }
7 return json_encode($result, JSON_PRETTY_PRINT);
8}
9
10// Приклад використання
11$rawJSON = '{"name":"John","age":30,"city":"New York"}';
12echo formatJSON($rawJSON);
13
1# Форматування JSON на Ruby
2require 'json'
3
4def format_json(json_string)
5 begin
6 parsed_data = JSON.parse(json_string)
7 return JSON.pretty_generate(parsed_data)
8 rescue JSON::ParserError => e
9 return "Помилка: #{e.message}"
10 end
11end
12
13# Приклад використання
14raw_json = '{"name":"John","age":30,"city":"New York"}'
15puts format_json(raw_json)
16
1// Форматування JSON на C# з Newtonsoft.Json
2using Newtonsoft.Json;
3using System;
4
5class JSONFormatter
6{
7 public static string FormatJSON(string jsonString)
8 {
9 try
10 {
11 object parsedJson = JsonConvert.DeserializeObject(jsonString);
12 return JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
13 }
14 catch (JsonException e)
15 {
16 return $"Помилка: {e.Message}";
17 }
18 }
19
20 static void Main()
21 {
22 string rawJSON = "{\"name\":\"John\",\"age\":30,\"city\":\"New York\"}";
23 Console.WriteLine(FormatJSON(rawJSON));
24 }
25}
26
1// Форматування JSON на Go
2package main
3
4import (
5 "encoding/json"
6 "fmt"
7)
8
9func formatJSON(jsonString string) string {
10 var parsedData interface{}
11 err := json.Unmarshal([]byte(jsonString), &parsedData)
12 if err != nil {
13 return fmt.Sprintf("Помилка: %s", err.Error())
14 }
15
16 formattedBytes, err := json.MarshalIndent(parsedData, "", " ")
17 if err != nil {
18 return fmt.Sprintf("Помилка: %s", err.Error())
19 }
20
21 return string(formattedBytes)
22}
23
24func main() {
25 rawJSON := `{"name":"John","age":30,"city":"New York"}`
26 fmt.Println(formatJSON(rawJSON))
27}
28
Крайні випадки та міркування
Коли ви працюєте з форматуванням JSON, будьте уважні до цих потенційних викликів:
Великі файли JSON
Дуже великі файли JSON (декілька мегабайт або більше) можуть викликати проблеми з продуктивністю в браузерних форматерах. Для таких випадків:
- Розгляньте можливість використання інструментів командного рядка, таких як
jq
- Розділіть JSON на менші частини
- Використовуйте поточні парсери для обробки без завантаження всього файлу в пам'ять
Глибоко вкладені структури
Надзвичайно вкладений JSON (більше 10-20 рівнів) може стати важким для навігації, навіть якщо його відформатувати. У таких випадках:
- Розгляньте можливість спрощення структури, якщо це можливо
- Використовуйте згортаючі переглядачі JSON
- Витягніть і працюйте з конкретними секціями JSON
Спеціальні символи та Юнікод
JSON підтримує Юнікод, але деякі форматери можуть мати проблеми з певними символами:
- Переконайтеся, що ваш форматер правильно обробляє емодзі та інші символи Юнікоду
- Будьте обережні з контрольними символами та ескейп-послідовностями
- Перевірте, що відформатований вихід зберігає всі оригінальні символи
Числова точність
JSON не вказує точність для чисел, що може призвести до проблем з дуже великими цілими числами або значеннями з плаваючою комою:
- Будьте обережні, що деякі реалізації JavaScript можуть втратити точність для цілих чисел понад 53 біти
- Розгляньте можливість використання рядкових представлень для точних числових значень
- Тестуйте з екстремальними значеннями, якщо ваш додаток вимагає високої точності
Порожні об'єкти та масиви
Дійсний JSON включає порожні об'єкти {}
і масиви []
, які повинні бути належним чином відформатовані:
- Порожні об'єкти повинні з'являтися як
{}
- Порожні масиви повинні з'являтися як
[]
- Вкладені порожні структури повинні зберігати належний відступ
Посилання
- JSON.org - Офіційний веб-сайт специфікації JSON
- RFC 8259 - Формат обміну даними JSON
- MDN Web Docs: JSON - Всеосяжна документація про JSON у JavaScript
- JSON Lint - Популярний онлайн-валідатор JSON
- jq - Легкий і гнучкий процесор JSON командного рядка
Зворотній зв'язок
Клацніть на спливаюче вікно зворотного зв'язку, щоб почати надавати відгуки про цей інструмент
Пов'язані Інструменти
Відкрийте більше інструментів, які можуть бути корисними для вашого робочого процесу