دادههای JSON خود را با تورفتگی مناسب فرمت و زیبا کنید. JSON خام را با هایلایت سینتکسی و اعتبارسنجی خوانا میکند.
با این ابزار ساده JSON خود را فرمت و زیبا کنید
JSON فرمت شده اینجا ظاهر خواهد شد...
JSON (JavaScript Object Notation) یک فرمت سبک برای تبادل داده است که به استانداردی برای تبادل داده در برنامههای وب تبدیل شده است. با وجود سادگیاش، دادههای JSON میتوانند زمانی که فشرده یا فاقد فرمت مناسب باشند، دشوار برای خواندن شوند. این ابزار به شما کمک میکند تا رشتههای JSON خام و بدون فرمت را به یک فرمت ساختاریافته و با فاصلههای مناسب تبدیل کنید که خواندن و تحلیل آن بسیار آسانتر است.
فرمتدهی JSON (که به عنوان "زیبا چاپ کردن" نیز شناخته میشود) فاصلهگذاری، خطهای جدید و فاصلههای منظم را اضافه میکند تا ساختار سلسلهمراتبی دادههای JSON بهطور بصری قابل مشاهده باشد. این موضوع بهویژه زمانی ارزشمند است که با اشیاء یا مجموعههای تو در تو پیچیده یا مجموعههای بزرگ کار میکنید که در غیر این صورت روابط بین عناصر ممکن است دشوار باشد.
ابزار فرمتدهنده JSON ما یک رابط ساده برای زیبا کردن دادههای JSON شما با فاصلهگذاری مناسب و ساختار فراهم میکند و در عین حال اعتبار آن را برای ماشینها حفظ میکند.
JSON بر اساس دو ساختار اصلی ساخته شده است:
{}
قرار دارند. هر نام با یک دو نقطه :
دنبال میشود و جفتها با کاما ,
جدا میشوند.1 {"name": "جان", "age": 30, "city": "نیویورک"}
2
[]
قرار دارند. مقادیر با کاما ,
جدا میشوند.1 ["سیب", "موز", "گیلاس"]
2
مقادیر JSON میتوانند باشند:
"سلام دنیا"
42
یا 3.14159
true
یا false
null
{"key": "value"}
[1, 2, 3]
JSON معتبر باید از این قوانین نحوی پیروی کند:
اشکالات رایج نحوی شامل موارد زیر است:
فرمتدهی JSON، JSON فشرده و بدون فرمت را به یک فرم قابل خواندنتر تبدیل میکند با:
تحلیل: رشته JSON ابتدا تحلیل میشود تا اطمینان حاصل شود که معتبر است و نمایی از دادهها در حافظه ایجاد شود.
فاصلهگذاری: هر سطح تو در تو از اشیاء و آرایهها با فاصله (معمولاً ۲ یا ۴ فاصله) برای نمایان کردن سلسلهمراتب بصری فاصلهگذاری میشود.
خطهای جدید: خطوط جدید پس از هر خاصیت یا عنصر آرایه اضافه میشوند تا خوانایی بهبود یابد.
فاصلهها: فاصلههای منظم در اطراف دو نقطه و کاما اضافه میشود.
برای مثال، این JSON فشرده:
1{"name":"جان دو","age":30,"address":{"street":"خیابان ۱۲۳","city":"شهر هرکجا","state":"CA"},"hobbies":["خواندن","کوهنوردی","عکاسی"]}
2
به این JSON فرمت شده تبدیل میشود:
1{
2 "name": "جان دو",
3 "age": 30,
4 "address": {
5 "street": "خیابان ۱۲۳",
6 "city": "شهر هرکجا",
7 "state": "CA"
8 },
9 "hobbies": [
10 "خواندن",
11 "کوهنوردی",
12 "عکاسی"
13 ]
14}
15
فرمتدهنده ما از فاصلهگذاری استاندارد ۲ فاصله برای هر سطح استفاده میکند که یک کنوانسیون رایج در جامعه توسعهدهندگان است و تعادل خوبی بین فشردگی و خوانایی فراهم میکند.
یک جنبه حیاتی از فرمتدهی JSON اعتبارسنجی است. قبل از اینکه JSON فرمتدهی شود، باید از نظر نحوی معتبر باشد بر اساس مشخصات JSON. اشکالات رایج اعتبارسنجی شامل:
اشکالات نحوی:
اشکالات نوع داده:
undefined
یا NaN
زمانی که با JSON نامعتبر مواجه میشوید، پیام خطا میتواند به شناسایی مشکل کمک کند. بیشتر تجزیهکنندههای JSON محل وقوع خطا را نشان میدهند که میتواند به پیدا کردن مشکل کمک کند. ابزار ما پیامهای خطای واضحی را برای کمک به شناسایی و رفع مشکلات در دادههای JSON شما فراهم میکند.
فرمتدهی JSON در سناریوهای متعددی ارزشمند است:
زمانی که با APIهای RESTful کار میکنید، JSON فرمت شده خواندن را آسانتر میکند:
بسیاری از برنامههای مدرن از JSON برای پیکربندی استفاده میکنند:
فرمتدهی JSON زمانی کمک میکند که:
فرمتدهی مناسب JSON زمانی ضروری است که:
فرمتدهی واضح JSON برای:
در حالی که فرمتدهنده آنلاین JSON ما برای کارهای سریع فرمتدهی مناسب است، چندین گزینه دیگر برای سناریوهای مختلف وجود دارد:
مرورگرهای مدرن شامل قابلیتهای فرمتدهی JSON هستند:
بیشتر محیطهای توسعه دارای فرمتدهی JSON هستند:
برای کاربران ترمینال یا اتوماسیون:
jq
یک پردازشگر JSON سبک و انعطافپذیر در خط فرمان استjson_pp
در بسیاری از سیستمهای یونیکس بهطور پیشفرض نصب شده استpython -m json.tool
برای فرمتدهی سریع با استفاده از پایتون فراهم میشودهنگامی که JSON را در برنامهها فرمت میکنید:
1// فرمتدهی JSON در جاوااسکریپت
2const formatted = JSON.stringify(jsonObject, null, 2);
3
1# فرمتدهی JSON در پایتون
2import json
3formatted = json.dumps(json_object, indent=2)
4
1// فرمتدهی JSON در جاوا با Gson
2Gson gson = new GsonBuilder().setPrettyPrinting().create();
3String formatted = gson.toJson(jsonObject);
4
1# فرمتدهی JSON در روبی
2require 'json'
3formatted = JSON.pretty_generate(json_object)
4
1// فرمتدهی JSON در PHP
2$formatted = json_encode($jsonObject, JSON_PRETTY_PRINT);
3
JSON توسط داگلاس کروفورد در اوایل دهه ۲۰۰۰ به عنوان یک جایگزین سبک برای XML ایجاد شد. این فرمت از نحو شیء جاوااسکریپت مشتق شده است اما بهطور مستقل از زبان طراحی شده است. در سال ۲۰۰۶، JSON بهطور رسمی در RFC 4627 مشخص شد و به سرعت به دلیل سادگی و سازگاریاش با جاوااسکریپت محبوبیت پیدا کرد.
قبل از JSON، XML فرمت غالب برای تبادل داده بود، اما حجم بالای آن و پیچیدگیاش آن را برای بسیاری از برنامهها دشوار میکرد. JSON یک نحو مختصرتر را ارائه داد که خواندن و نوشتن آن هم برای انسانها و هم برای ماشینها آسانتر بود. همچنین کاملاً با مدل شیء جاوااسکریپت همراستا بود و آن را به انتخاب طبیعی برای برنامههای وب تبدیل کرد.
پذیرش JSON با ظهور AJAX و APIهای RESTful در اوایل دهه ۲۰۰۰ شتاب گرفت. تا دهه ۲۰۱۰، این فرمت به استانداردی برای APIهای وب، فایلهای پیکربندی و ذخیرهسازی داده در پایگاههای داده NoSQL مانند MongoDB و CouchDB تبدیل شده بود.
امروزه JSON تقریباً توسط هر زبان برنامهنویسی پشتیبانی میشود و در برنامههای بیشماری در سراسر وب استفاده میشود. سادگی، انعطافپذیری و پشتیبانی جهانی آن را به یکی از مهمترین فرمتهای داده در محاسبات مدرن تبدیل کرده است.
در اینجا مثالهایی از نحوه فرمتدهی JSON در زبانهای مختلف برنامهنویسی آورده شده است:
1// فرمتدهی JSON در جاوااسکریپت
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":"جان","age":30,"city":"نیویورک"}';
13console.log(formatJSON(rawJSON));
14
1# فرمتدهی JSON در پایتون
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":"جان","age":30,"city":"نیویورک"}'
13print(format_json(raw_json))
14
1// فرمتدهی JSON در جاوا با 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\":\"جان\",\"age\":30,\"city\":\"نیویورک\"}";
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":"جان","age":30,"city":"نیویورک"}';
12echo formatJSON($rawJSON);
13
1# فرمتدهی JSON در روبی
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":"جان","age":30,"city":"نیویورک"}'
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\":\"جان\",\"age\":30,\"city\":\"نیویورک\"}";
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":"جان","age":30,"city":"نیویورک"}`
26 fmt.Println(formatJSON(rawJSON))
27}
28
هنگام کار با فرمتدهی JSON، از این چالشهای بالقوه آگاه باشید:
فایلهای بسیار بزرگ JSON (چند مگابایت یا بیشتر) میتوانند در فرمتدهندههای مبتنی بر مرورگر مشکلات عملکردی ایجاد کنند. برای چنین مواردی:
jq
را در نظر بگیریدJSONهای بسیار تو در تو (بیش از ۱۰-۲۰ سطح) حتی زمانی که فرمت شدهاند میتوانند دشوار باشند. در این موارد:
JSON از یونیکد پشتیبانی میکند، اما برخی از فرمتدهندهها ممکن است با کاراکترهای خاصی مشکل داشته باشند:
JSON دقتی برای اعداد مشخص نمیکند، که میتواند در مورد اعداد بسیار بزرگ یا مقادیر اعشاری مشکلاتی ایجاد کند:
JSON معتبر شامل اشیاء خالی {}
و آرایههای خالی []
است که باید به درستی فرمت شوند:
{}
[]
کشف ابزارهای بیشتری که ممکن است برای جریان کاری شما مفید باشند