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 ফরম্যাট করবেন?
- পঠনযোগ্যতা: সঠিক ইনডেন্টেশন ও লাইন ব্রেক গঠন, ভুল খুঁজে বের করা এবং জটিল ডেটা কাঠামোগুলো এক নজরে বুঝতে সহজ করে।
- ডিবাগিং: অবৈধ বা অপ্রত্যাশিত ডেটা সমাধান করা সহজ হয় যখন আপনি কী, মান এবং নেস্টিং লেভেলগুলো ভিজ্যুয়ালি ট্রেস করতে পারেন।
- সহযোগিতা: সুন্দরভাবে ফরম্যাট করা JSON কোড রিভিউ, ডকুমেন্টেশন বা শেয়ার্ড ফাইলে পর্যালোচনা, আলোচনা এবং সম্পাদনা সহজ করে।
- ভার্সন কন্ট্রোল: Git ও অন্যান্য VCS টুল ফরম্যাট করা JSON নিয়ে অর্থবহ ডিফ তৈরি করে, যা সময়ের সাথে পরিবর্তন ট্র্যাক করা সহজ করে।
- কমপ্লায়েন্স: অনেক স্টাইল গাইড ও স্বয়ংক্রিয় লিন্টার (যেমন Prettier, ESLint বা jq) ধারাবাহিকতা ও স্পষ্টতার জন্য সঠিক ফরম্যাটিং বাধ্যতামূলক করে।
- টুল সামঞ্জস্য: কিছু API, CLI এবং এডিটর মানুষের জন্য সহজ ব্যবহার বা লগিংয়ের জন্য ফরম্যাট করা ইনপুট আশা করে।
JSON ফরম্যাটার কীভাবে কাজ করে?
- পার্সিং: ফরম্যাটার প্রথমে আপনার ইনপুট টেক্সট একটি কঠোর JSON পার্সার দিয়ে বিশ্লেষণ করে। এই ধাপে সিনট্যাক্সের বৈধতা যাচাই হয়—যেমন অনুপস্থিত উক্তি, অতিরিক্ত কমা বা এস্কেপ না করা অক্ষরগুলো শনাক্ত করা।
- সুন্দর মুদ্রণ: বৈধ হলে, পার্স করা ডেটা ব্যবহারকারীর নির্ধারিত ইনডেন্টেশন (সাধারণত ২ বা ৪ স্পেস) ও লাইন ব্রেকসহ স্ট্রিং আকারে ফেরত পাঠানো হয়, একটি “সুন্দর প্রিন্টেড” সংস্করণ সৃষ্টি করে।
যদি ইনপুট বৈধ JSON না হয়, ফরম্যাটার একটি ত্রুটি দেখাবে বা সমস্যার অবস্থান ও প্রকৃতির বিষয়ে সাহায্যকারী বার্তা প্রদর্শন করবে।
ফরম্যাটিং বিকল্পসমূহ
- ইনডেন্টেশন: প্রতি স্তরের জন্য স্পেসের সংখ্যা সেঁটে দিন (সর্বোচ্চ ৮)।
- অবজেক্ট কী গুলো আক্ষরিক ক্রমে সাজান
- স্পেসের পরিবর্তে ট্যাব ব্যবহার করুন ইনডেন্টেশনের জন্য
- অ-ASCII অক্ষরগুলো ইউনিকোড হিসেবে এস্কেপ করুন
- আউটপুট মিনিফাই করুন (এক লাইনে, স্পেস ছাড়া)
ফরম্যাটিং দ্বারা সমাধানযোগ্য সাধারণ সমস্যা
- এক-লাইন/মিনিফাইড JSON: API বা লগ ফাইল থেকে আসা ডেটা প্রায়শই ব্যান্ডউইথ সাশ্রয়ের জন্য মিনিফাই করা হয়, যার ফলে ম্যানুয়াল এডিটিং কঠিন। ফরম্যাটিং পর্যালোচনা ও সম্পাদনার জন্য পঠনযোগ্যতা ফিরিয়ে আনে।
- অসঙ্গত ইনডেন্টেশন: বিভিন্ন উৎস থেকে পেস্টকৃত JSON এ মিশ্র ট্যাব, স্পেস বা অসমান ইনডেন্ট গভীরতা থাকতে পারে। পুনরায় ফরম্যাটিং এই পার্থক্য সমান করে স্পষ্টতা ও ধারাবাহিকতা বাড়ায়।
- বড়/নেস্টেড স্ট্রাকচার: গভীর নেস্টেড অ্যারে বা অবজেক্ট (যেমন কনফিগারেশন ফাইল বা জটিল API রেসপন্স) ফরম্যাট করলে নিয়ন্ত্রণে আনা ও নেভিগেট করা সহজ হয়, সাপোর্টেড এডিটরে যুক্ত আরোপযোগ্য ভিউ সহ।
বাস্তব জীবনের ব্যবহার: API রেসপন্স ফরম্যাটিং
তৃতীয় পক্ষের API (যেমন 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)
}