জেসন মেরামত সরঞ্জাম
অটোমেটিকভাবে ভাঙা বা বিকৃত JSON মেরামত করুন এবং পুনরুদ্ধার করুন—নিরাপদ, দ্রুত এবং বিনামূল্যে।
এই টুলটি স্বয়ংক্রিয় ত্রুটি সংশোধনের মাধ্যমে ক্ষতিগ্রস্ত বা অবৈধ JSON মেরামত করে। এটি এক্সপোর্ট করা ডেটা, লগ অথবা হাতে সম্পাদিত ফাইলগুলিতে সাধারণত দেখা যায় এমন সিনট্যাক্স সমস্যা যেমন অনুপস্থিত উদ্ধৃতি, ভুল কমা, বা মিল না থাকা বন্ধনী সনাক্ত করে এবং বৈধ, বিশ্লেষণযোগ্য JSON আউটপুট প্রদানের জন্য তৈরি করা হয়েছে।
নিচের আপনার JSONটি মেরামত করুন
JSON মেরামত কীভাবে কাজ করে
টুলটি আপনার ইনপুটে সাধারণ JSON সিনট্যাক্স সমস্যাগুলো স্ক্যান করে এবং নির্দিষ্ট সমাধান প্রয়োগ করে, সম্ভাব্য হলে বৈধ JSON তৈরি করে।
- ইনপুট বিশ্লেষণ করে এবং সাধারণ সিনট্যাক্স ত্রুটিগুলো সনাক্ত করে, যেমন অবৈধ অক্ষর, ভুল স্থানে বন্ধনী, এবং ভুল স্ট্রিং উদ্ধৃতি চিহ্ন।
- সাধারণ ভুলগুলি ঠিক করে — যেমন অভাবিত উদ্ধৃতিচিহ্ন যোগ করা, অতিরিক্ত কমা সরানো, অথবা বন্ধনী সংশোধন করা।
- মেরামতকৃত JSON আউটপুট প্রদান করে। বেশিরভাগ ক্ষেত্রে, ফলাফল অবিলম্বে বিশ্লেষণ বা ব্যবহারের জন্য প্রস্তুত থাকে।
- যদি কাঠামো স্বয়ংক্রিয়ভাবে ঠিক না করা যায়, একটি স্পষ্ট ত্রুটি প্রদর্শিত হয় যাতে আপনি আপনার ইনপুট সামঞ্জস্য করতে পারেন।
সাধারণ JSON ত্রুটি এবং সেগুলো কীভাবে ঠিক করবেন
এখানে_typical_JSON_ত্রুটিগুলি_যা_এই_টুল_সংশোধন_করতে_পারে, প্রতিটির_উদাহরণসহ:
উল্লেখহীন কী
কীসমূহ অবশ্যই ডাবল কোটেশনে থাকতে হবে।
{ নাম: "বব" }
{ "name": "বব" }
সমাধান: কোনো আনকোয়টেড অবজেক্ট কী থাকার ক্ষেত্রে তার চারপাশে ডবল উদ্ধৃতি চিহ্ন যোগ করে।
একক উদ্ধৃতিচিহ্ন ব্যবহৃত হয়েছে
JSON শুধুমাত্র স্ট্রিংয়ের জন্য ডাবল কোটেশন গ্রহণ করে।
{ 'role': 'অ্যাডমিন' }
{ "role": "প্রশাসক" }
ঠিক করা হয়েছে: সব স্ট্রিং-এ একক উদ্ধৃতির পরিবর্তে দ্বৈত উদ্ধৃতি ব্যবহার করা হয়েছে।
শেষে কমা
শেষ আইটেমের পরে কোন কমা অনুমোদিত নয়।
{ "a": ১, "b": ২, }
{ "a": ১, "b": ২ }
সমাধান: যেকোনো অতিরিক্ত কমা সরানো হয়েছে।
অসামঞ্জস্যপূর্ণ বা বন্ধ না হওয়া বন্ধনী
সমস্ত বন্ধনী এবং বন্ধনীগুলো সঠিকভাবে বন্ধ করতে হবে।
[১, ২, ৩
[১, ২, ৩]
সমাধান: অনুপস্থিত বন্ধনী বা বন্ধনী যোগ করা হয়েছে।
মিসিং অথবা অতিরিক্ত কমা
অ্যারে এবং অবজেক্টের আইটেমগুলো একক কমা দিয়ে পৃথক করতে হবে।
{ "a": ১ "b": ২ }
{ "a": ১, "b": ২ }
সমাধান: অনুপস্থিত কমা যুক্ত করে বা পুনরাবৃত্তি মুছে দেয়।
মন্তব্য লাইন উপস্থিত
স্ট্যান্ডার্ড JSON এ মন্তব্য (যেমন // বা /* ... */) অনুমোদিত নয়।
{ "id": 1, // ব্যবহারকারী আইডি "active": true }
{ "id": 1, "active": সত্য }
সমাধান: ইনপুট থেকে মন্তব্য লাইনগুলি মুছে ফেলা হয়েছে।
অকার্যকর নম্বর ফরম্যাট
শুধুমাত্র সরল দশমিক সংখ্যা বৈধ (না NaN, অসীমতা, বা ষড়রঙা সংখ্যা).
{ "val": NaN }
{ "val": null }
সমাধান: অবৈধ সংখ্যাগুলিকে null দ্বারা প্রতিস্থাপন করে।
অসংরক্ষিত নিয়ন্ত্রণ অক্ষর
স্ট্রিংয়ের মধ্যে নিউলাইন চরিত্রগুলোকে এস্কেপ করতে হয়।
{ "msg": "লাইন1 লাইন2" }
{ "msg": "লাইন১\nলাইন২" }
সমাধান: নিয়ন্ত্রণ অক্ষরগুলো সঠিকভাবে এড়ানো হয়েছে।
অবজেক্টে ডুপ্লিকেট কী
একই অবজেক্টে নকল কী থাকা বিভ্রান্তির কারণ হয়।
{ "name": "এ" , "name": "বি" }
{ "name": "বি" }
সমাধান: যেকোনো নকল কী-এর জন্য শুধুমাত্র শেষ মানটি রাখে।
ত্রুটিপূর্ণ অ্যারে
অ্যারেগুলোর মধ্যে অবশ্যই ব্র্যাকেট এবং আইটেমগুলোর মধ্যে কমা থাকতে হবে।
[ ১ ২ ৩ ]
[ ১, ২, ৩ ]
মেরামত: অ্যারে উপাদানগুলোর মধ্যে অনুপস্থিত কমাগুলো যোগ করা হয়েছে।
খালি ইনপুট বা সম্পূর্ণ ফাঁকা স্থান
JSON ফাঁকা হতে পারে না।
নাল
সমাধান: খালি ইনপুটের জন্য নাল ফেরত দেয়।
উদাহরণ: ভাঙা JSON থেকে একটি বৈধ মেরামত
{ user: 'এলিস', id: 42, roles: [admin, 'সম্পাদক',] // অতিরিক্ত কমা active: true }মেরামতকৃত JSON আউটপুট
{ "user": "অ্যালিস", "id": 42, "roles": [ "প্রশাসক", "সম্পাদক" ], "active": true }
এই JSON মেরামত সরঞ্জাম কীভাবে ব্যবহার করবেন
- নীচের সম্পাদক বক্সে আপনার ভঙ্গুর JSON পেস্ট বা টাইপ করুন।
- সাধারণ সিনট্যাক্স ত্রুটিগুলি স্বয়ংক্রিয়ভাবে সনাক্ত এবং ঠিক করতে 'মেরামত' ক্লিক করুন।
- মেরামতকৃত আউটপুট পর্যালোচনা করুন এবং আপনার সংশোধিত JSON কপি করুন।
গুরুত্বপূর্ণ তথ্যের জন্য ব্যবহারের আগে সবসময় মেরামতকৃত JSON পরীক্ষা করুন—জটিল বা গভীরভাবে ক্ষতিগ্রস্ত ইনপুটের ক্ষেত্রে ম্যানুয়াল সমন্বয়ের প্রয়োজন হতে পারে।
JSON মেরামতের জন্য কোড উদাহরণ
বিভিন্ন প্রোগ্রামিং ভাষায় JSON কীভাবে মেরামত করবেন দেখুন।
const { jsonrepair } = require('jsonrepair');
const broken = '{ name: "Bob", age: 42, }';
const fixed = jsonrepair(broken);
console.log(fixed); // Now valid JSON!
let broken = "{ name: 'Bob', age: 42 }";
broken = broken.replace(/(['"])?:([\s]*)([^\s,\{\}\[\]":']+)/g, '"$1$3":');
try {
let obj = JSON.parse(broken);
console.log(obj);
} catch (e) {
console.error('Still broken:', e.message);
}
import dirtyjson
broken = "{ name: 'Bob', age: 42 }"
obj = dirtyjson.loads(broken)
print(obj)
import demjson3
broken = "{ name: 'Bob', age: 42 }"
obj = demjson3.decode(broken)
print(obj)
package main
import (
"fmt"
"github.com/robertkrimen/otto"
)
func main() {
vm := otto.New()
broken := "{ name: 'Bob', age: 42 }"
value, err := vm.Run("(" + broken + ")")
if err != nil {
fmt.Println("Cannot repair:", err)
} else {
obj, _ := value.Export()
fmt.Println(obj)
}
}
import org.json.JSONObject;
public class Main {
public static void main(String[] args) {
String broken = "{'name': 'Bob', 'age': 42}".replace(''', '"');
JSONObject obj = new JSONObject(broken);
System.out.println(obj);
}
}
using System;
using Newtonsoft.Json;
class Program {
static void Main() {
var broken = "{ name: 'Bob', age: 42 }".Replace("'", "\"");
try {
var obj = JsonConvert.DeserializeObject(broken);
Console.WriteLine(obj);
} catch (Exception ex) {
Console.WriteLine("Broken JSON: " + ex.Message);
}
}
}
<?php
$broken = "{ name: 'Bob', age: 42 }";
$fixed = preg_replace("/'([^"]*)'/", '"$1"', $broken);
$fixed = preg_replace('/([a-zA-Z0-9_]+):/', '"$1":', $fixed);
$obj = json_decode($fixed);
var_dump($obj);
# Using system call to npx jsonrepair
require 'open3'
broken = "{ name: 'Bob', age: 42 }"
fixed, _ = Open3.capture2("echo #{broken.inspect} | npx jsonrepair")
puts fixed
echo "{ name: 'Bob', age: 42 }" | npx jsonrepair
// Rust does not have a json repair crate yet. Pre-process string with regex to fix simple cases, then use serde_json.
import org.json.JSONObject
fun main() {
var broken = "{ name: 'Bob', age: 42 }".replace("'", "\"")
broken = Regex("([a-zA-Z0-9_]+):").replace(broken, ""$1":")
val obj = JSONObject(broken)
println(obj)
}
import { jsonrepair } from 'jsonrepair';
const broken = '{ name: "Bob", age: 42 }';
const fixed = jsonrepair(broken);
console.log(fixed);
var broken = "{ name: 'Bob', age: 42 }";
var fixed = broken.replaceAll("'", '"').replaceAllMapped(
RegExp(r'([a-zA-Z0-9_]+):'),
(m) => '"${m[ 1 ]}":',
);
print(fixed);
broken = "{ name: 'Bob', age: 42 }"
fixed = Regex.replace(~r/'/, broken, """)
fixed = Regex.replace(~r/(\w+):/, fixed, ""\\1":")
IO.puts(fixed)