JSON Formatter & Beautifier: Snyggt Utskriven JSON med Indragning
Formatera och snygga till din JSON-data med korrekt indragning. Gör rå JSON läsbar med syntaxmarkering och validering.
JSON Formatter
Formatera och försköna din JSON med detta enkla verktyg
Formaterad JSON kommer att visas här...
Dokumentation
JSON Formatter
Introduktion
JSON (JavaScript Object Notation) är ett lättviktigt datautbytesformat som har blivit standard för datautbyte i webbapplikationer. Trots sin enkelhet kan JSON-data bli svåra att läsa när de är minifierade eller saknar korrekt formatering. Det här verktyget hjälper dig att omvandla råa, oformaterade JSON-strängar till ett välstrukturerat, indenterat format som är mycket lättare att läsa och analysera.
JSON-formatering (även känd som "pretty printing") lägger till konsekvent indragning, radbrytningar och mellanrum för att göra den hierarkiska strukturen av JSON-data visuellt tydlig. Detta är särskilt värdefullt när man arbetar med komplexa nästlade objekt eller stora dataset där relationerna mellan elementen annars kan vara svåra att urskilja.
Vårt JSON-formateringsverktyg erbjuder ett enkelt gränssnitt för att försköna din JSON-data med korrekt indragning och struktur, vilket gör den mer läsbar för människor samtidigt som den behåller sin giltighet för maskiner.
JSON-syntax och struktur
JSON bygger på två primära strukturer:
- Objekt: Samlingar av namn/värde-par som är inneslutna i klamrar
{}
. Varje namn följs av ett kolon:
och par separeras med kommatecken,
.
1 {"name": "John", "age": 30, "city": "New York"}
2
- Arrayer: Ordnade listor av värden som är inneslutna i hakparenteser
[]
. Värden separeras med kommatecken,
.
1 ["apple", "banana", "cherry"]
2
JSON-värden kan vara:
- Strängar (i dubbla citat):
"Hello World"
- Tal:
42
eller3.14159
- Booleans:
true
ellerfalse
- Null:
null
- Objekt:
{"key": "value"}
- Arrayer:
[1, 2, 3]
Korrekt JSON måste följa dessa syntaxregler:
- Namn måste vara strängar i dubbla citat
- Värden måste vara en av de giltiga JSON-datatyperna
- Inga avslutande kommatecken är tillåtna
- Inga kommentarer är tillåtna
- Inga funktioner eller metoder är tillåtna
Vanliga syntaxfel inkluderar:
- Saknade eller felaktigt matchade klamrar
- Saknade citat runt egenskapsnamn
- Användning av enkla citat istället för dubbla citat
- Inkludering av avslutande kommatecken
- Användning av odefinierade värden
Hur JSON-formatering fungerar
JSON-formatering omvandlar kompakt, minifierad JSON till en mer läsbar form genom att:
-
Parsa: JSON-strängen parsas först för att säkerställa att den är giltig och för att skapa en minnesrepresentation av datastrukturen.
-
Indragning: Varje nästlad nivå av objekt och arrayer indras (vanligtvis med 2 eller 4 mellanslag) för att visuellt representera hierarkin.
-
Radbrytningar: Nya rader läggs till efter varje egenskap eller arrayelement för att förbättra läsbarheten.
-
Mellanrum: Konsekventa mellanrum läggs till runt kolon och kommatecken.
Till exempel, denna minifierade JSON:
1{"name":"John Doe","age":30,"address":{"street":"123 Main St","city":"Anytown","state":"CA"},"hobbies":["reading","hiking","photography"]}
2
Blir denna formaterade 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
Vår formaterare använder en standardindragning på 2 mellanslag per nivå, vilket är en vanlig konvention i utvecklingsgemenskapen och ger en bra balans mellan kompakthet och läsbarhet.
JSON-validering
En kritisk aspekt av JSON-formatering är validering. Innan JSON kan formateras måste den vara syntaktiskt giltig enligt JSON-specifikationen. Vanliga valideringsfel inkluderar:
-
Syntaxfel:
- Oformaterade egenskapsnamn
- Saknade eller extra kommatecken
- Felaktigt nästlade strukturer
- Ofullständiga strängar, objekt eller arrayer
-
Datatypfel:
- Användning av JavaScript-specifika värden som
undefined
ellerNaN
- Inkludering av funktioner eller metoder
- Användning av enkla citat för strängar
- Användning av JavaScript-specifika värden som
När du stöter på ogiltig JSON kan felmeddelandet hjälpa till att identifiera problemet. De flesta JSON-parsare kommer att ange den position där parsningen misslyckades, vilket kan hjälpa till att lokalisera problemet. Vårt verktyg ger tydliga felmeddelanden för att hjälpa dig att identifiera och åtgärda problem i din JSON-data.
Användningsfall
JSON-formatering är värdefull i många scenarier:
API-utveckling och testning
När du arbetar med RESTful API:er gör formaterad JSON det lättare att:
- Inspektera svarspaket
- Felsöka begärningskroppar
- Dokumentera API-exempel
- Verifiera att datastrukturer matchar förväntningarna
Konfigurationshantering
Många moderna applikationer använder JSON för konfiguration:
- Applikationsinställningsfiler
- Miljökonfigurationer
- Bygg- och distributionsspecifikationer
- Infrastruktur som kod-mallar (t.ex. AWS CloudFormation, Terraform)
Dataanalys och visualisering
Formaterad JSON hjälper när:
- Utforska dataset
- Förbereda data för visualisering
- Förstå datascheman
- Identifiera mönster i strukturerad data
Felsökning och problemlösning
Korrekt formaterad JSON är avgörande när:
- Felsöka webbapplikationer
- Inspektera localStorage eller sessionStorage
- Analysera nätverksrespons
- Felsöka dataintegrationsproblem
Utbildningsändamål
Tydlig JSON-formatering är värdefull för:
- Undervisa om datastrukturer
- Demonstrera nästlade relationer
- Förklara API-koncept
- Illustrera datamodelleringsprinciper
Alternativ
Även om vårt webbaserade JSON-formateringsverktyg är praktiskt för snabba formateringsuppgifter, finns det flera alternativ för olika scenarier:
Webbläsarens utvecklarverktyg
Moderna webbläsare inkluderar JSON-formateringsfunktioner:
- Chrome och Edge DevTools formaterar automatiskt JSON-svar i nätverksfliken
- Firefox JSON-visare ger en interaktiv trädvy
- Webbläsartillägg som JSONView kan formatera JSON direkt i webbläsaren
Kodredigerare och IDE:er
De flesta utvecklingsmiljöer erbjuder JSON-formatering:
- Visual Studio Code har inbyggd JSON-formatering (Alt+Shift+F)
- JetBrains IDE:er (WebStorm, IntelliJ) inkluderar kraftfulla JSON-verktyg
- Sublime Text och Atom stöder JSON-formatering genom tillägg
Kommandoradsverktyg
För terminalanvändare eller automatisering:
jq
är en kraftfull kommandoradsprocessor för JSONjson_pp
finns förinstallerad på många Unix-systempython -m json.tool
ger snabb formatering med Python
Programmatisk tillvägagångssätt
När du formaterar JSON inom applikationer:
1// JavaScript
2const formatted = JSON.stringify(jsonObject, null, 2);
3
1# Python
2import json
3formatted = json.dumps(json_object, indent=2)
4
1// Java med 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
Historia
JSON skapades av Douglas Crockford i början av 2000-talet som ett lättviktigt alternativ till XML. Formatet härstammar från JavaScript-objektets litterala syntax men är utformat för att vara oberoende av språk. År 2006 specificerades JSON formellt i RFC 4627, och det fick snabbt popularitet på grund av sin enkelhet och kompatibilitet med JavaScript.
Innan JSON var XML det dominerande formatet för datautbyte, men dess verbositet och komplexitet gjorde det besvärligt för många applikationer. JSON erbjöd en mer koncis syntax som var lättare att läsa och skriva, både för människor och maskiner. Det passade också perfekt med JavaScripts objektmodell, vilket gjorde det till det naturliga valet för webbapplikationer.
JSON:s antagande accelererade med uppkomsten av AJAX och RESTful API:er i mitten av 2000-talet. Vid 2010-talet hade det blivit standardformatet för webb-API:er, konfigurationsfiler och datalagring i NoSQL-databaser som MongoDB och CouchDB.
Idag stöds JSON av praktiskt taget alla programmeringsspråk och används i otaliga applikationer över hela webben. Dess enkelhet, flexibilitet och universella stöd har gjort det till ett av de viktigaste dataformaterna i modern databehandling.
Kodexempel
Här är exempel på hur man formaterar JSON i olika programmeringsspråk:
1// JavaScript JSON-formatering
2function formatJSON(jsonString) {
3 try {
4 const parsedData = JSON.parse(jsonString);
5 return JSON.stringify(parsedData, null, 2);
6 } catch (error) {
7 return `Fel: ${error.message}`;
8 }
9}
10
11// Exempelanvändning
12const rawJSON = '{"name":"John","age":30,"city":"New York"}';
13console.log(formatJSON(rawJSON));
14
1# Python JSON-formatering
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"Fel: {str(e)}"
10
11# Exempelanvändning
12raw_json = '{"name":"John","age":30,"city":"New York"}'
13print(format_json(raw_json))
14
1// Java JSON-formatering med 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 "Fel: " + 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// PHP JSON-formatering
2function formatJSON($jsonString) {
3 $result = json_decode($jsonString);
4 if (json_last_error() !== JSON_ERROR_NONE) {
5 return "Fel: " . json_last_error_msg();
6 }
7 return json_encode($result, JSON_PRETTY_PRINT);
8}
9
10// Exempelanvändning
11$rawJSON = '{"name":"John","age":30,"city":"New York"}';
12echo formatJSON($rawJSON);
13
1# Ruby JSON-formatering
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 "Fel: #{e.message}"
10 end
11end
12
13# Exempelanvändning
14raw_json = '{"name":"John","age":30,"city":"New York"}'
15puts format_json(raw_json)
16
1// C# JSON-formatering med 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 $"Fel: {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// Go JSON-formatering
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("Fel: %s", err.Error())
14 }
15
16 formattedBytes, err := json.MarshalIndent(parsedData, "", " ")
17 if err != nil {
18 return fmt.Sprintf("Fel: %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
Gränsfall och överväganden
När du arbetar med JSON-formatering, var medveten om dessa potentiella utmaningar:
Stora JSON-filer
Mycket stora JSON-filer (flera megabyte eller mer) kan orsaka prestandaproblem i webbläsarbaserade formaterare. För sådana fall:
- Överväg att använda kommandoradsverktyg som
jq
- Dela upp JSON i mindre bitar
- Använd strömmande parsare för att bearbeta utan att ladda hela filen i minnet
Djupt nästlade strukturer
Extremt nästlad JSON (mer än 10-20 nivåer djup) kan bli svår att navigera även när den är formaterad. I dessa fall:
- Överväg att platta ut strukturen om möjligt
- Använd kollapsbara JSON-visare
- Extrahera och arbeta med specifika delar av JSON
Specialtecken och Unicode
JSON stöder Unicode, men vissa formaterare kan ha problem med vissa tecken:
- Se till att din formaterare korrekt hanterar emoji och andra Unicode-tecken
- Var försiktig med kontrolltecken och escape-sekvenser
- Verifiera att den formaterade utdata bevarar alla ursprungliga tecken
Numerisk precision
JSON specificerar inte precision för tal, vilket kan leda till problem med mycket stora heltal eller flyttal:
- Var medveten om att vissa JavaScript-implementationer kan förlora precision för heltal över 53 bitar
- Överväg att använda strängrepresentationer för precisa numeriska värden
- Testa med extrema värden om din applikation kräver hög precision
Tomma objekt och arrayer
Giltig JSON inkluderar tomma objekt {}
och arrayer []
, som bör formateras korrekt:
- Tomma objekt bör visas som
{}
- Tomma arrayer bör visas som
[]
- Nästlade tomma strukturer bör upprätthålla korrekt indragning
Referenser
- JSON.org - Den officiella JSON-specifikationswebbplatsen
- RFC 8259 - JSON Data Interchange Format
- MDN Web Docs: JSON - Omfattande dokumentation om JSON i JavaScript
- JSON Lint - En populär online JSON-validerare
- jq - En lättviktig och flexibel kommandoradsprocessor för JSON
Återkoppling
Klicka på återkopplingsmeddelandet för att börja ge återkoppling om detta verktyg
Relaterade verktyg
Upptäck fler verktyg som kan vara användbara för ditt arbetsflöde