Форматирайте и подобрявайте вашите JSON данни с правилно отстъпване. Прави суровия JSON четим с подсветка на синтаксиса и валидиране.
Форматирайте и подобрете вашия JSON с този прост инструмент
Форматираният JSON ще се появи тук...
JSON (JavaScript Object Notation) е лек формат за обмен на данни, който стана стандарт за обмен на данни в уеб приложения. Въпреки своята простота, 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
{"key": "value"}
[1, 2, 3]
Правилният 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. Честите валидационни грешки включват:
Синтактични грешки:
Грешки в типовете данни:
undefined
или NaN
Когато се сблъскате с невалиден JSON, съобщението за грешка може да помогне за идентифициране на проблема. Повечето JSON парсери ще посочат позицията, където парсингът е неуспешен, което може да помогне за локализиране на проблема. Нашият инструмент предоставя ясни съобщения за грешки, за да ви помогне да идентифицирате и коригирате проблеми в JSON данните.
Форматирането на JSON е ценно в множество сценарии:
Когато работите с RESTful API, форматираният JSON улеснява:
Много съвременни приложения използват JSON за конфигурация:
Форматираният JSON помага, когато:
Правилно форматираният JSON е от съществено значение, когато:
Ясното форматиране на JSON е ценно за:
Въпреки че нашият уеб-базиран JSON форматиращ инструмент е удобен за бързи форматиращи задачи, съществуват няколко алтернативи за различни сценарии:
Съвременните браузъри включват възможности за форматиране на JSON:
Повечето разработки предлагат форматиране на JSON:
За потребители на терминали или автоматизация:
jq
е мощен инструмент за обработка на JSON от командния редjson_pp
е предварително инсталиран на много Unix системиpython -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 файлове (няколко мегабайта или повече) могат да причинят проблеми с производителността в браузър-базирани форматиращи инструменти. За такива случаи:
jq
Изключително вложен JSON (повече от 10-20 нива дълбочина) може да стане труден за навигация, дори когато е форматиран. В тези случаи:
JSON поддържа Юникод, но някои форматиращи инструменти могат да имат проблеми с определени символи:
JSON не уточнява прецизност за числа, което може да доведе до проблеми с много големи цели числа или стойности с плаваща запетая:
Валидният JSON включва празни обекти {}
и масиви []
, които трябва да бъдат правилно форматирани:
{}
[]
Открийте още инструменти, които може да бъдат полезни за вашия работен процес