JSON فارمیٹر
تیز، مفت، اور محفوظ آن لائن JSON فارمیٹر۔
اپنا JSON نیچے فارمیٹ کریں
اپنا JSON آن لائن فوری طور پر فارمیٹ کریں اور فورا نتائج حاصل کریں۔ جدید اور کوڈ دوستانہ ایڈیٹر کے ساتھ لائن نمبرز اور سنتیکس ہائی لائٹنگ کا لطف اٹھائیں۔ تمام عمل تیز، نجی اور آپ کے براؤزر تک محدود ہیں۔
JSON فارمیٹنگ کیا ہے؟
JSON فارمیٹنگ ایک ایسا عمل ہے جس میں JSON ڈیٹا کو مستقل، انسان دوست انداز میں تبدیل کیا جاتا ہے، جس میں انڈینٹیشن، وائٹ اسپیس اور لائن بریک شامل ہوتے ہیں — بغیر اس کی ساخت یا مواد کو تبدیل کیے۔ مناسب فارمیٹنگ JSON کو آسانی سے معائنہ، ڈیبگ، شیئر اور ایڈٹ کرنے کے قابل بناتی ہے، جبکہ مشینوں اور سافٹ ویئر ٹولز کے ساتھ مطابقت بھی برقرار رکھتی ہے۔
تعریف کے مطابق، JSON اپنے سٹرنگ ویلیوز کے باہر وائٹ اسپیس کو نظر انداز کرتا ہے۔ تاہم، خراب یا منیفائی کیا ہوا JSON—جس میں انڈینٹیشن نہ ہو یا سب ایک لائن پر ہو—انسانوں کے لیے پڑھنا یا قابل یقین طریقے سے تبدیل کرنا تقریباً ناممکن بن سکتا ہے۔
JSON کی فارمیٹنگ اور منیفائی میں فرق
- فارمیٹنگ وضاحت اور پڑھنے کی آسانی کے لیے وائٹ اسپیس، انڈینٹیشن، اور لائن بریکز شامل کرتی ہے۔
- منیفائی تمام غیر ضروری وائٹ اسپیسز کو ہٹا کر زیادہ سے زیادہ کمپیکٹ اور اسٹوریج یا ٹرانسفر کے لیے مؤثر بناتی ہے۔
- ایک مضبوط JSON فارمیٹر آپ کو ان دونوں موڈز کے درمیان آسانی سے سوئچ کرنے دیتا ہے، تاکہ انسانی پڑھنے کے قابل اور مشین کے لیے موزوں ورژنز بآسانی حاصل کیے جا سکیں۔
مثال: منیفائیڈ بمقابلہ فارمیٹ شدہ JSON
منیفائیڈ (کمپیکٹ) JSON:{"id":"3f4b2c","user":{"name":"Dana","is_active":true},"roles":["admin","editor"],"count":7}فارمیٹ شدہ (خوبصورت) JSON:
{ "id": "3f4b2c", "user": { "name": "Dana", "is_active": true }, "roles": [ "admin", "editor" ], "count": 7 }
JSON فارمیٹ کرنے کی ضرورت کیوں؟
- قابلِ مطالعہ ہونا: مناسب انڈینٹیشن اور لائن بریک nested objects کو دیکھنے، غلطیوں کو پہچاننے، اور پیچیدہ ڈیٹا ڈھانچوں کو سمجھنے میں آسانی پیدا کرتے ہیں۔
- ڈی بگنگ: غلط یا غیر متوقع ڈیٹا کی تشخیص آسان ہو جاتی ہے جب آپ کلیدوں، ویلیوز، اور nested سطحات کو بصری طور پر سکین اور ٹریس کر سکتے ہیں۔
- اشتراک: اچھی طرح فارمیٹ شدہ JSON کوڈ ریویوز، دستاویزات، یا مشترکہ فائلز میں آسانی سے جائزہ، بات چیت اور ترمیم کے قابل بناتی ہے۔
- ورژن کنٹرول: Git اور دوسرے VCS ٹولز فارمیٹ شدہ JSON کے ساتھ معنی خیز فرق تیار کرتے ہیں، جو تبدیلیوں کو وقت کے ساتھ ٹریک کرنا آسان بناتے ہیں۔
- مطابقت: بہت سے اسٹائل گائیڈز اور خودکار لینٹرز (جیسے Prettier، ESLint، یا jq) واضح اور معیاری فارمیٹنگ کے لیے پابند ہوتے ہیں۔
- ٹول مطابقت: کچھ APIs، CLI اور ایڈیٹرز آسان انسانی انٹریکشن یا لاگنگ کے لیے فارمیٹ شدہ ان پٹ کی توقع رکھتے ہیں۔
JSON فارمیٹر کیسے کام کرتا ہے؟
- پارسنگ: فارمیٹر سب سے پہلے آپ کے ان پٹ متن کو سخت JSON پارسر کے ذریعے پارس کرنے کی کوشش کرتا ہے۔ یہ قدم سینٹیکس کی درستگی چیک کرتا ہے، جیسے گمشدہ کوٹس، زائد کومہ، یا انایسکیپڈ کردار۔
- خوبصورت پرنٹنگ: جب ان پٹ درست ہو جائے، پارس شدہ ڈیٹا کو صارف کی مقرر کردہ انڈینٹیشن (عام طور پر 2 یا 4 اسپیسز) اور لائن بریک کے ساتھ دوبارہ سیرئیلائز کیا جاتا ہے تاکہ ایک "خوبصورت" ورژن بنایا جا سکے۔
اگر ان پٹ درست JSON نہیں ہے تو، فارمیٹر ایک ایرر پھینکے گا یا مسئلے کی جگہ اور نوعیت کا مفید پیغام فراہم کرے گا۔
فارمیٹنگ کے اختیارات
- انڈینٹیشن: ہر سطح پر اسپیسز کی تعداد مقرر کریں (زیادہ سے زیادہ 8)۔
- آبجیکٹ کیز کو حروف تہجی کی ترتیب میں لگائیں
- انڈینٹیشن کے لیے سپیس کے بجائے ٹیب استعمال کریں
- غیر ASCII کریکٹرز کو یونی کوڈ میں تبدیل کریں
- آؤٹ پٹ کو منیفائی کریں (ایک لائن میں، بغیر اسپیسز کے)
فارمیٹنگ سے حل ہونے والے عام مسائل
- ایک لائن یا منیفائیڈ JSON: API یا لاگ فائلز سے واپس آنے والا ڈیٹا اکثر بینڈوڈتھ بچانے کے لیے کمپیکٹ ہوتا ہے، جو دستی ترمیم کو مشکل بنا دیتا ہے۔ فارمیٹنگ پڑھنے اور ترمیم کرنے میں آسانی پیدا کرتی ہے۔
- ناقابلِ مطابقت انڈینٹیشن: مختلف ذرائع سے چسپاں کیے گئے JSON میں ٹیب، اسپیس یا انڈینٹیشن کی گہرائی مختلف ہو سکتی ہے۔ ریفارمیٹنگ ان اختلافات کو معمول پر لاتی ہے، جو وضاحت اور یکسانیت کو بڑھاتی ہے۔
- بڑے/گہرے ڈھانچے: گہرائی میں nested array یا objects (جیسے کنفیگریشن فائلز یا پیچیدہ API جوابات) فارمیٹ کرنے سے قابلِ فہم اور نیویگیٹ کرنے میں آسان بن جاتے ہیں، خاص طور پر سپورٹڈ ایڈیٹرز میں جو collapsible views مہیا کرتے ہیں۔
حقیقی دنیا کا کیس: API جوابات کی فارمیٹنگ
جب آپ تھرڈ پارٹی APIs (جیسے AWS، Stripe، یا Google Cloud) کے ساتھ انٹیگریٹ کرتے ہیں تو جوابات تیز رفتاری کے لیے عموماً کمپیکٹ کیے جاتے ہیں۔ JSON آؤٹ پٹ کی فارمیٹنگ سے کھوئے ہوئے فیلڈز، غیرمتوقع ویلیوز کو ڈیبگ کرنا اور ٹیم کے ساتھ اشتراک کرنا آسان ہو جاتا ہے۔
مثال: خام API جواب{"amount":2500,"currency":"usd","status":"succeeded","charges":[{"id":"ch_1Gq","amount":2500}]}جائزہ کے لیے فارمیٹ کیا گیا
{ "amount": 2500, "currency": "usd", "status": "succeeded", "charges": [ { "id": "ch_1Gq", "amount": 2500 } ] }
اس ٹول سے JSON کیسے فارمیٹ کریں
- اپنا خام، منیفائیڈ، یا خراب فارمیٹ شدہ JSON ان پٹ ایریا میں پیسٹ یا اپلوڈ کریں۔
- فارمیٹنگ کی اختیارات منتخب کریں (انڈینٹیشن سائز، کیز ترتیب، وغیرہ)۔
- اپنے ان پٹ کو پراسیس کرنے کے لیے "فارمیٹ" پر کلک کریں۔
- صاف اور قابلِ مطالعہ آؤٹ پٹ دیکھیں یا کاپی کریں۔ اگر غلطیاں ملیں تو مفصل سنتیکس پیغامات آپ کی JSON درست کرنے میں مدد کریں گے۔
تمام فارمیٹنگ آپ کے براؤزر میں محفوظ طریقے سے کی جاتی ہے—آپ کا ڈیٹا کبھی بھی آپ کے ڈیوائس سے باہر نہیں جاتا۔
JSON فارمیٹنگ کے لیے کوڈ مثالیں
دیکھیں کہ مختلف پروگرامنگ زبانوں میں JSON کو کیسے فارمیٹ کیا جاتا ہے۔ یہ مثالیں بنیادی فارمیٹنگ تکنیکوں کو واضح کرتی ہیں۔
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
const pretty = JSON.stringify(JSON.parse(ugly), null, 2);
console.log(pretty);
import json
ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
pretty = json.dumps(json.loads(ugly), indent=2)
print(pretty)
package main
import (
"encoding/json"
"fmt"
)
func main() {
ugly := []byte(`{"name":"Alice","age":30,"roles":["admin","user"]}`)
var obj interface{}
json.Unmarshal(ugly, &obj)
pretty, _ := json.MarshalIndent(obj, "", " ")
fmt.Println(string(pretty))
}
import com.fasterxml.jackson.databind.ObjectMapper;
public class Main {
public static void main(String[] args) throws Exception {
String ugly = "{"name":"Alice","age":30,"roles":["admin","user"]}";
ObjectMapper mapper = new ObjectMapper();
Object obj = mapper.readValue(ugly, Object.class);
String pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj);
System.out.println(pretty);
}
}
using System;
using Newtonsoft.Json;
class Program {
static void Main() {
var ugly = "{"name":"Alice","age":30,"roles":["admin","user"]}";
var parsed = JsonConvert.DeserializeObject(ugly);
var pretty = JsonConvert.SerializeObject(parsed, Formatting.Indented);
Console.WriteLine(pretty);
}
}
<?php
$ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
$obj = json_decode($ugly);
echo json_encode($obj, JSON_PRETTY_PRINT);
require 'json'
ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
pretty = JSON.pretty_generate(JSON.parse(ugly))
puts pretty
echo '{"name":"Alice","age":30,"roles":["admin","user"]}' | jq .
fn main() {
let ugly = r#"{"name":"Alice","age":30,"roles":["admin","user"]}"#;
let value: serde_json::Value = serde_json::from_str(ugly).unwrap();
let pretty = serde_json::to_string_pretty(&value).unwrap();
println!("{}", pretty);
}
import com.fasterxml.jackson.databind.ObjectMapper
fun main() {
val ugly = "{"name":"Alice","age":30,"roles":["admin","user"]}"
val mapper = ObjectMapper()
val obj = mapper.readValue(ugly, Any::class.java)
val pretty = mapper.writerWithDefaultPrettyPrinter().writeValueAsString(obj)
println(pretty)
}
import Foundation
let ugly = "{\"name\":\"Alice\",\"age\":30,\"roles\":[\"admin\",\"user\"]}"
if let data = ugly.data(using: .utf8),
let obj = try? JSONSerialization.jsonObject(with: data),
let pretty = try? JSONSerialization.data(withJSONObject: obj, options: .prettyPrinted),
let prettyString = String(data: pretty, encoding: .utf8) {
print(prettyString)
}
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
const pretty = JSON.stringify(JSON.parse(ugly), null, 2);
console.log(pretty);
SELECT jsonb_pretty('{"name":"Alice","age":30,"roles":["admin","user"]}'::jsonb);
SELECT JSON_PRETTY('{"name":"Alice","age":30,"roles":["admin","user"]}');
$ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}'
$obj = $ugly | ConvertFrom-Json
$pretty = $obj | ConvertTo-Json -Depth 10
Write-Output $pretty
use JSON;
my $ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
my $obj = decode_json($ugly);
print to_json($obj, { pretty => 1 });
import 'dart:convert';
void main() {
const ugly = '{"name":"Alice","age":30,"roles":["admin","user"]}';
final obj = jsonDecode(ugly);
final pretty = JsonEncoder.withIndent(' ').convert(obj);
print(pretty);
}
ugly = ~s({"name":"Alice","age":30,"roles":["admin","user"]})
{:ok, obj} = Jason.decode(ugly)
pretty = Jason.encode!(obj, pretty: true)
IO.puts(pretty)
import play.api.libs.json._
object Main extends App {
val ugly = """{"name":"Alice","age":30,"roles":["admin","user"]}"""
val jsValue = Json.parse(ugly)
val pretty = Json.prettyPrint(jsValue)
println(pretty)
}