Whiz Tools

জেসন ফরম্যাটার

এই সহজ টুল দিয়ে আপনার জেসন ফরম্যাট এবং সুন্দর করুন

ফরম্যাট করা জেসন এখানে প্রদর্শিত হবে...

JSON Formatter

পরিচিতি

JSON (জাভাস্ক্রিপ্ট অবজেক্ট নোটেশন) একটি লাইটওয়েট ডেটা বিনিময় ফরম্যাট যা ওয়েব অ্যাপ্লিকেশনগুলিতে ডেটা বিনিময়ের জন্য মানক হয়ে উঠেছে। এর সরলতার সত্ত্বেও, JSON ডেটা যখন মিনিফাইড হয় বা সঠিক ফরম্যাটিংয়ের অভাব থাকে তখন তা পড়তে কঠিন হয়ে পড়তে পারে। এই টুলটি আপনাকে কাঁচা, অরূপান্তরিত JSON স্ট্রিংগুলিকে একটি ভাল-গঠিত, ইন্ডেন্টেড ফরম্যাটে রূপান্তর করতে সহায়তা করে যা পড়া এবং বিশ্লেষণ করা অনেক সহজ।

JSON ফরম্যাটিং (যাকে "প্রিটি প্রিন্টিং"ও বলা হয়) কনসিস্টেন্ট ইন্ডেন্টেশন, লাইন ব্রেক এবং স্পেসিং যুক্ত করে JSON ডেটার হায়ারার্কিকাল স্ট্রাকচারকে ভিজ্যুয়ালি স্পষ্ট করে। এটি বিশেষভাবে জটিল নেস্টেড অবজেক্ট বা বড় ডেটাসেটগুলির জন্য মূল্যবান যেখানে উপাদানগুলির মধ্যে সম্পর্কগুলি অন্যথায় বোঝা কঠিন হতে পারে।

আমাদের JSON ফরম্যাটার টুলটি আপনার JSON ডেটাকে সঠিক ইন্ডেন্টেশন এবং কাঠামো সহ সুন্দরভাবে তৈরি করতে একটি সহজ ইন্টারফেস প্রদান করে, যা মানুষের জন্য আরও পড়তে সহজ কিন্তু যন্ত্রগুলির জন্য তার বৈধতা বজায় রাখে।

JSON সিনট্যাক্স এবং স্ট্রাকচার

JSON দুটি প্রধান স্ট্রাকচারের উপর ভিত্তি করে তৈরি:

  1. অবজেক্ট: কুর্লি ব্রেস {} এর মধ্যে আবদ্ধ নাম/মান জোড়ের সংগ্রহ। প্রতিটি নামের পরে একটি কলন : থাকে এবং জোড়গুলি কমা , দ্বারা পৃথক হয়।
   {"name": "জন", "age": 30, "city": "নিউ ইয়র্ক"}
   
  1. অ্যারেস: স্কোয়ার ব্র্যাকেট [] এর মধ্যে আবদ্ধ মানগুলির অর্ডারড তালিকা। মানগুলি কমা , দ্বারা পৃথক হয়।
   ["আপেল", "কলা", "চেরি"]
   

JSON মান হতে পারে:

  • স্ট্রিং (ডাবল কোটের মধ্যে): "হ্যালো বিশ্ব"
  • সংখ্যা: 42 বা 3.14159
  • বুলিয়ান: সত্য বা মিথ্যা
  • নাল: null
  • অবজেক্ট: {"key": "value"}
  • অ্যারে: [1, 2, 3]

সঠিক JSON অবশ্যই এই সিনট্যাক্স নিয়মগুলি অনুসরণ করতে হবে:

  • নামগুলি ডাবল কোটের মধ্যে স্ট্রিং হতে হবে
  • মানগুলিকে বৈধ JSON ডেটা টাইপগুলির মধ্যে একটি হতে হবে
  • কোনও ট্রেইলিং কমা অনুমোদিত নয়
  • মন্তব্য অনুমোদিত নয়
  • কোনও ফাংশন বা পদ্ধতি অনুমোদিত নয়

সাধারণ সিনট্যাক্স ত্রুটিগুলির মধ্যে রয়েছে:

  • অনুপস্থিত বা অমিল ব্র্যাকেট/ব্রেস
  • সম্পত্তির নামের চারপাশে অনুপস্থিত কোট
  • একক কোটের পরিবর্তে ডাবল কোট ব্যবহার করা
  • ট্রেইলিং কমা অন্তর্ভুক্ত করা
  • মান হিসাবে অজ্ঞাত ব্যবহার করা

JSON ফরম্যাটিং কিভাবে কাজ করে

JSON ফরম্যাটিং সংকীর্ণ, মিনিফাইড JSON কে আরও পড়তে সহজ একটি ফর্ম্যাটে রূপান্তর করে:

  1. পার্সিং: JSON স্ট্রিংটি প্রথমে পার্স করা হয় যাতে এটি বৈধ কিনা তা নিশ্চিত করা যায় এবং ডেটা স্ট্রাকচারের একটি ইন-মেমরি প্রতিনিধিত্ব তৈরি করা যায়।

  2. ইন্ডেন্টেশন: অবজেক্ট এবং অ্যারের প্রতিটি নেস্টেড স্তরকে (সাধারণত 2 বা 4 স্পেস দ্বারা) ইন্ডেন্ট করা হয় যাতে হায়ারার্কি দৃশ্যমান হয়।

  3. লাইন ব্রেক: প্রতিটি সম্পত্তি বা অ্যারে উপাদানের পরে নতুন লাইন যুক্ত করা হয় যাতে পড়ার সুবিধা হয়।

  4. স্পেসিং: কলন এবং কমার চারপাশে সঙ্গতিপূর্ণ স্পেসিং যুক্ত করা হয়।

যেমন, এই মিনিফাইড JSON:

{"name":"জন ডো","age":30,"address":{"street":"১২৩ মেইন স্ট","city":"অন্যটাউন","state":"CA"},"hobbies":["পড়া","হাইকিং","ছবি তোলা"]}

এটি এই ফরম্যাটেড JSON এ পরিণত হয়:

{
  "name": "জন ডো",
  "age": 30,
  "address": {
    "street": "১২৩ মেইন স্ট",
    "city": "অন্যটাউন",
    "state": "CA"
  },
  "hobbies": [
    "পড়া",
    "হাইকিং",
    "ছবি তোলা"
  ]
}

আমাদের ফরম্যাটার একটি মানক ইন্ডেন্টেশন ব্যবহার করে 2 স্পেস প্রতি স্তরের জন্য, যা উন্নয়ন সম্প্রদায়ে একটি সাধারণ রীতি এবং সংক্ষিপ্ততা এবং পড়ার সুবিধার মধ্যে একটি ভাল ভারসাম্য প্রদান করে।

JSON বৈধতা

JSON ফরম্যাটিংয়ের একটি গুরুত্বপূর্ণ দিক হল বৈধতা। JSON ফরম্যাট করা হলে এটি অবশ্যই JSON স্পেসিফিকেশন অনুযায়ী সিনট্যাকটিক্যালি বৈধ হতে হবে। সাধারণ বৈধতা ত্রুটিগুলির মধ্যে রয়েছে:

  1. সিনট্যাক্স ত্রুটি:

    • অনুচিত সম্পত্তির নাম
    • অনুপস্থিত বা অতিরিক্ত কমা
    • ভুলভাবে নেস্টেড স্ট্রাকচার
    • অপ্রকাশিত স্ট্রিং, অবজেক্ট বা অ্যারে
  2. ডেটা টাইপের ত্রুটি:

    • undefined বা NaN এর মতো জাভাস্ক্রিপ্ট-নির্দিষ্ট মান ব্যবহার করা
    • ফাংশন বা পদ্ধতি অন্তর্ভুক্ত করা
    • স্ট্রিংগুলির জন্য একক কোট ব্যবহার করা

যখন আপনি অবৈধ JSON পান, ত্রুটির বার্তাটি সমস্যা চিহ্নিত করতে সহায়তা করতে পারে। বেশিরভাগ JSON পার্সারগুলি পার্সিং ব্যর্থ হওয়ার সময় অবস্থান নির্দেশ করে, যা সমস্যাটি চিহ্নিত করতে সহায়ক। আমাদের টুল স্পষ্ট ত্রুটি বার্তা প্রদান করে যাতে আপনি আপনার JSON ডেটায় সমস্যা চিহ্নিত এবং মেরামত করতে পারেন।

ব্যবহার কেস

JSON ফরম্যাটিং অনেকগুলি পরিস্থিতিতে মূল্যবান:

API উন্নয়ন এবং পরীক্ষণ

RESTful API কাজ করার সময়, ফরম্যাটেড JSON পড়া সহজ করে তোলে:

  • প্রতিক্রিয়া প্যayload পরিদর্শন
  • অনুরোধের শরীর ডিবাগ করা
  • API উদাহরণগুলি নথিভুক্ত করা
  • ডেটা স্ট্রাকচারগুলি প্রত্যাশার সাথে মেলে কিনা তা যাচাই করা

কনফিগারেশন ব্যবস্থাপনা

অনেক আধুনিক অ্যাপ্লিকেশন কনফিগারেশনের জন্য JSON ব্যবহার করে:

  • অ্যাপ্লিকেশন সেটিংস ফাইল
  • পরিবেশ কনফিগারেশন
  • বিল্ড এবং মোতায়েন স্পেসিফিকেশন
  • অবকাঠামো হিসাবে কোড টেমপ্লেট (যেমন, AWS ক্লাউডফরমেশন, Terraform)

ডেটা বিশ্লেষণ এবং ভিজ্যুয়ালাইজেশন

ফরম্যাটেড JSON সহায়ক যখন:

  • ডেটাসেটগুলি অন্বেষণ করা
  • ভিজ্যুয়ালাইজেশনের জন্য ডেটা প্রস্তুত করা
  • ডেটা স্কিমাগুলি বোঝা
  • কাঠামোবদ্ধ ডেটাতে প্যাটার্ন চিহ্নিত করা

ডিবাগিং এবং সমস্যার সমাধান

সঠিকভাবে ফরম্যাট করা JSON অপরিহার্য যখন:

  • ওয়েব অ্যাপ্লিকেশন ডিবাগ করা
  • localStorage বা sessionStorage পরিদর্শন করা
  • নেটওয়ার্ক প্রতিক্রিয়া বিশ্লেষণ করা
  • ডেটা ইন্টিগ্রেশন সমস্যাগুলি সমাধান করা

শিক্ষামূলক উদ্দেশ্য

স্পষ্ট JSON ফরম্যাটিং শিক্ষার জন্য মূল্যবান:

  • ডেটা স্ট্রাকচার শেখানো
  • নেস্টেড সম্পর্কগুলি প্রদর্শন করা
  • API ধারণাগুলি ব্যাখ্যা করা
  • ডেটা মডেলিং নীতিগুলি চিত্রিত করা

বিকল্প

যদিও আমাদের ওয়েব-ভিত্তিক JSON ফরম্যাটার দ্রুত ফরম্যাটিং কাজের জন্য সুবিধাজনক, বিভিন্ন পরিস্থিতির জন্য বেশ কয়েকটি বিকল্প বিদ্যমান:

ব্রাউজার ডেভেলপার টুল

আধুনিক ব্রাউজারগুলি JSON ফরম্যাটিং ক্ষমতা অন্তর্ভুক্ত করে:

  • Chrome এবং Edge DevTools নেটওয়ার্ক ট্যাবে JSON প্রতিক্রিয়াগুলি স্বয়ংক্রিয়ভাবে ফরম্যাট করে
  • Firefox এর JSON ভিউয়ার একটি ইন্টারেক্টিভ ট্রি ভিউ প্রদান করে
  • ব্রাউজার এক্সটেনশনগুলি যেমন JSONView JSON কে সরাসরি ব্রাউজারে ফরম্যাট করতে পারে

কোড সম্পাদক এবং IDE

বেশিরভাগ উন্নয়ন পরিবেশ JSON ফরম্যাটিং অফার করে:

  • ভিজ্যুয়াল স্টুডিও কোডে বিল্ট-ইন JSON ফরম্যাটিং (Alt+Shift+F) রয়েছে
  • JetBrains IDEs (WebStorm, IntelliJ) শক্তিশালী JSON টুলস অন্তর্ভুক্ত করে
  • Sublime Text এবং Atom প্লাগইনের মাধ্যমে JSON ফরম্যাটিং সমর্থন করে

কমান্ড লাইন টুল

টার্মিনাল ব্যবহারকারীদের বা স্বয়ংক্রিয়করণের জন্য:

  • jq একটি শক্তিশালী কমান্ড-লাইন JSON প্রসেসর
  • json_pp অনেক ইউনিক্স সিস্টেমে পূর্ব-ইনস্টল করা থাকে
  • python -m json.tool পাইথন ব্যবহার করে দ্রুত ফরম্যাটিং প্রদান করে

প্রোগ্রাম্যাটিক পদ্ধতি

অ্যাপ্লিকেশনের মধ্যে JSON ফরম্যাটিং করার সময়:

// জাভাস্ক্রিপ্ট
const formatted = JSON.stringify(jsonObject, null, 2);
# পাইথন
import json
formatted = json.dumps(json_object, indent=2)
// জাভা গসন সহ
Gson gson = new GsonBuilder().setPrettyPrinting().create();
String formatted = gson.toJson(jsonObject);
# রুবি
require 'json'
formatted = JSON.pretty_generate(json_object)
// পিএইচপি
$formatted = json_encode($jsonObject, JSON_PRETTY_PRINT);

ইতিহাস

JSON ডগলাস ক্রকফোর্ড দ্বারা 2000-এর দশকের শুরুতে তৈরি করা হয়েছিল একটি লাইটওয়েট বিকল্প হিসাবে XML। ফরম্যাটটি জাভাস্ক্রিপ্ট অবজেক্ট লিটারাল সিনট্যাক্স থেকে উদ্ভূত হয় কিন্তু ভাষা-স্বাধীন হতে ডিজাইন করা হয়েছে। 2006 সালে, JSON আনুষ্ঠানিকভাবে RFC 4627-এ নির্দিষ্ট করা হয় এবং এটি তার সরলতা এবং জাভাস্ক্রিপ্টের সাথে সামঞ্জস্যের কারণে দ্রুত জনপ্রিয়তা অর্জন করে।

JSON এর আগে, XML ডেটা বিনিময়ের জন্য প্রধান ফরম্যাট ছিল, তবে এর ভারীতা এবং জটিলতা অনেক অ্যাপ্লিকেশনের জন্য এটি ক্লান্তিকর করে তোলে। JSON একটি আরও সংক্ষিপ্ত সিনট্যাক্স প্রদান করে যা মানুষের এবং যন্ত্রের জন্য লেখা এবং পড়া সহজ। এটি জাভাস্ক্রিপ্টের অবজেক্ট মডেলের সাথে সম্পূর্ণরূপে সঙ্গতিপূর্ণ, যা এটি ওয়েব অ্যাপ্লিকেশনগুলির জন্য প্রাকৃতিক পছন্দ করে তোলে।

JSON এর গ্রহণযোগ্যতা AJAX এবং RESTful API এর উত্থানের সাথে 2000-এর দশকের মাঝামাঝি সময়ে ত্বরান্বিত হয়। 2010-এর দশকের মধ্যে, এটি ওয়েব API, কনফিগারেশন ফাইল এবং MongoDB এবং CouchDB-এর মতো NoSQL ডেটাবেসে ডেটা সংরক্ষণের জন্য ডিফেক্টো স্ট্যান্ডার্ড হয়ে উঠেছে।

আজ, JSON প্রায় প্রতিটি প্রোগ্রামিং ভাষা দ্বারা সমর্থিত এবং এটি ওয়েব জুড়ে অসংখ্য অ্যাপ্লিকেশনে ব্যবহৃত হয়। এর সরলতা, নমনীয়তা এবং সার্বজনীন সমর্থন এটিকে আধুনিক কম্পিউটিংয়ে সবচেয়ে গুরুত্বপূর্ণ ডেটা ফরম্যাটগুলির মধ্যে একটি করে তুলেছে।

কোড উদাহরণ

বিভিন্ন প্রোগ্রামিং ভাষায় JSON ফরম্যাটিংয়ের উদাহরণ এখানে রয়েছে:

// জাভাস্ক্রিপ্ট JSON ফরম্যাটিং
function formatJSON(jsonString) {
  try {
    const parsedData = JSON.parse(jsonString);
    return JSON.stringify(parsedData, null, 2);
  } catch (error) {
    return `ত্রুটি: ${error.message}`;
  }
}

// উদাহরণ ব্যবহার
const rawJSON = '{"name":"জন","age":30,"city":"নিউ ইয়র্ক"}';
console.log(formatJSON(rawJSON));
# পাইথন JSON ফরম্যাটিং
import json

def format_json(json_string):
    try:
        parsed_data = json.loads(json_string)
        return json.dumps(parsed_data, indent=2)
    except json.JSONDecodeError as e:
        return f"ত্রুটি: {str(e)}"

# উদাহরণ ব্যবহার
raw_json = '{"name":"জন","age":30,"city":"নিউ ইয়র্ক"}'
print(format_json(raw_json))
// জাভা JSON ফরম্যাটিং গসনের সাথে
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonSyntaxException;

public class JSONFormatter {
    public static String formatJSON(String jsonString) {
        try {
            Gson gson = new GsonBuilder().setPrettyPrinting().create();
            Object parsedJson = gson.fromJson(jsonString, Object.class);
            return gson.toJson(parsedJson);
        } catch (JsonSyntaxException e) {
            return "ত্রুটি: " + e.getMessage();
        }
    }
    
    public static void main(String[] args) {
        String rawJSON = "{\"name\":\"জন\",\"age\":30,\"city\":\"নিউ ইয়র্ক\"}";
        System.out.println(formatJSON(rawJSON));
    }
}
// পিএইচপি JSON ফরম্যাটিং
function formatJSON($jsonString) {
    $result = json_decode($jsonString);
    if (json_last_error() !== JSON_ERROR_NONE) {
        return "ত্রুটি: " . json_last_error_msg();
    }
    return json_encode($result, JSON_PRETTY_PRINT);
}

// উদাহরণ ব্যবহার
$rawJSON = '{"name":"জন","age":30,"city":"নিউ ইয়র্ক"}';
echo formatJSON($rawJSON);
# রুবি JSON ফরম্যাটিং
require 'json'

def format_json(json_string)
  begin
    parsed_data = JSON.parse(json_string)
    return JSON.pretty_generate(parsed_data)
  rescue JSON::ParserError => e
    return "ত্রুটি: #{e.message}"
  end
end

# উদাহরণ ব্যবহার
raw_json = '{"name":"জন","age":30,"city":"নিউ ইয়র্ক"}'
puts format_json(raw_json)
// C# JSON ফরম্যাটিং নিউটনসফট.জসনের সাথে
using Newtonsoft.Json;
using System;

class JSONFormatter
{
    public static string FormatJSON(string jsonString)
    {
        try
        {
            object parsedJson = JsonConvert.DeserializeObject(jsonString);
            return JsonConvert.SerializeObject(parsedJson, Formatting.Indented);
        }
        catch (JsonException e)
        {
            return $"ত্রুটি: {e.Message}";
        }
    }
    
    static void Main()
    {
        string rawJSON = "{\"name\":\"জন\",\"age\":30,\"city\":\"নিউ ইয়র্ক\"}";
        Console.WriteLine(FormatJSON(rawJSON));
    }
}
// গো JSON ফরম্যাটিং
package main

import (
    "encoding/json"
    "fmt"
)

func formatJSON(jsonString string) string {
    var parsedData interface{}
    err := json.Unmarshal([]byte(jsonString), &parsedData)
    if err != nil {
        return fmt.Sprintf("ত্রুটি: %s", err.Error())
    }
    
    formattedBytes, err := json.MarshalIndent(parsedData, "", "  ")
    if err != nil {
        return fmt.Sprintf("ত্রুটি: %s", err.Error())
    }
    
    return string(formattedBytes)
}

func main() {
    rawJSON := `{"name":"জন","age":30,"city":"নিউ ইয়র্ক"}`
    fmt.Println(formatJSON(rawJSON))
}

প্রান্তিক কেস এবং বিবেচনা

JSON ফরম্যাটিংয়ের সাথে কাজ করার সময়, এই সম্ভাব্য চ্যালেঞ্জগুলির বিষয়ে সচেতন থাকুন:

বড় JSON ফাইল

বহু মেগাবাইট বা তার বেশি বড় JSON ফাইলগুলি ব্রাউজার-ভিত্তিক ফরম্যাটারে কর্মক্ষমতার সমস্যা সৃষ্টি করতে পারে। এই ধরনের ক্ষেত্রে:

  • কমান্ড-লাইন টুলগুলি যেমন jq ব্যবহার করার কথা বিবেচনা করুন
  • JSON-কে ছোট ছোট টুকরোতে বিভক্ত করুন
  • সম্পূর্ণ ফাইলটি মেমরিতে লোড না করে প্রক্রিয়াকরণের জন্য স্ট্রিমিং পার্সার ব্যবহার করুন

গভীরভাবে নেস্টেড স্ট্রাকচার

অত্যন্ত নেস্টেড JSON (10-20 স্তরের বেশি) ফরম্যাট করা হলেও নেভিগেট করা কঠিন হয়ে পড়তে পারে। এই ক্ষেত্রে:

  • সম্ভব হলে কাঠামোকে সমতল করার কথা বিবেচনা করুন
  • কোঁচকানো JSON ভিউয়ার ব্যবহার করুন
  • JSON এর নির্দিষ্ট অংশগুলি বের করুন এবং তার সাথে কাজ করুন

বিশেষ অক্ষর এবং ইউনিকোড

JSON ইউনিকোড সমর্থন করে, তবে কিছু ফরম্যাটার কিছু অক্ষরের সাথে সমস্যা হতে পারে:

  • নিশ্চিত করুন যে আপনার ফরম্যাটার এমোজি এবং অন্যান্য ইউনিকোড অক্ষরগুলি সঠিকভাবে পরিচালনা করে
  • নিয়ন্ত্রণ অক্ষর এবং পাল্টা ক্রমের সাথে সতর্ক থাকুন
  • নিশ্চিত করুন যে ফরম্যাট করা আউটপুট সমস্ত মূল অক্ষর সংরক্ষণ করে

সংখ্যার সঠিকতা

JSON সংখ্যা জন্য সঠিকতা নির্দিষ্ট করে না, যা খুব বড় পূর্ণসংখ্যা বা ভাসমান বিন্দু মানগুলির সাথে সমস্যার সৃষ্টি করতে পারে:

  • সচেতন থাকুন যে কিছু জাভাস্ক্রিপ্ট বাস্তবায়ন 53 বিটের বেশি পূর্ণসংখ্যার জন্য সঠিকতা হারাতে পারে
  • সঠিক সংখ্যার মানগুলির জন্য স্ট্রিং উপস্থাপনাগুলি ব্যবহার করার কথা বিবেচনা করুন
  • আপনার অ্যাপ্লিকেশন যদি উচ্চ সঠিকতা প্রয়োজন হয় তবে চরম মানগুলির সাথে পরীক্ষা করুন

খালি অবজেক্ট এবং অ্যারে

বৈধ JSON খালি অবজেক্ট {} এবং অ্যারে [] অন্তর্ভুক্ত করে, যা সঠিকভাবে ফরম্যাট করা উচিত:

  • খালি অবজেক্ট {} হিসাবে প্রদর্শিত হওয়া উচিত
  • খালি অ্যারে [] হিসাবে প্রদর্শিত হওয়া উচিত
  • নেস্টেড খালি কাঠামোগুলি সঠিক ইন্ডেন্টেশন বজায় রাখা উচিত

রেফারেন্স

  1. JSON.org - অফিসিয়াল JSON স্পেসিফিকেশন ওয়েবসাইট
  2. RFC 8259 - JSON ডেটা বিনিময় ফরম্যাট
  3. MDN ওয়েব ডক্স: JSON - জাভাস্ক্রিপ্টে JSON সম্পর্কে বিস্তৃত ডকুমেন্টেশন
  4. JSON লিন্ট - একটি জনপ্রিয় অনলাইন JSON ভ্যালিডেটর
  5. jq - একটি লাইটওয়েট এবং নমনীয় কমান্ড-লাইন JSON প্রসেসর
Feedback