JSON مرمت کا آلہ

خودکار طریقے سے ٹوٹے ہوئے یا خراب شدہ JSON کو محفوظ، تیزی سے اور مفت طور پر درست کریں اور بحال کریں۔

یہ آلہ خودکار غلطی کی اصلاح کے ذریعے خراب یا غلط JSON کو درست کرتا ہے۔ یہ برآمد شدہ ڈیٹا، لاگز، یا ہاتھ سے ترمیم شدہ فائلوں میں سب سے عام نحو کی غلطیوں جیسے کہ گمشدہ اقتباسات، اضافی کامے، یا غیر ہم آہنگ بریکٹس کو نشانہ بناتا ہے اور درست، قابل تجزیہ JSON فراہم کرتا ہے۔

اپنا JSON نیچے درست کریں

JSON مرمت کیسے کام کرتی ہے

یہ آلہ آپ کے ان پٹ کو عام JSON نحو کی مشکلات کے لیے اسکین کرتا ہے اور مخصوص اصلاحات کرتا ہے، تاکہ ممکنہ حد تک درست اور قابلِ قبول JSON تیار کیا جا سکے۔

  1. ان پٹ کا تجزیہ کرتا ہے اور عام نحو کی غلطیوں کا پتہ لگاتا ہے، بشمول غیر قانونی کردار، غلط جگہ پر بریکٹ، اور غلط سٹرنگ کوٹس۔
  2. عام غلطیوں کی اصلاحات کرتا ہے—جیسے کہ غائب اقتباسات کا اضافہ، اضافی کوما ہٹانا، یا بریکٹ کی درستگی۔
  3. مرمت شدہ JSON فراہم کرتا ہے۔ زیادہ تر معاملات میں، نتیجہ فوراً تجزیہ کرنے یا استعمال کرنے کے لیے تیار ہوتا ہے۔
  4. اگر ڈھانچہ خودکار طور پر درست نہیں کیا جا سکتا تو ایک واضح خرابی دکھائی جاتی ہے تاکہ آپ اپنی ان پٹ میں ترمیم کر سکیں۔

عام JSON غلطیاں اور انہیں کیسے درست کریں

یہاں عام JSON کی غلطیاں دی گئی ہیں جنہیں یہ ٹول درست کر سکتا ہے، ہر ایک کے لیے مثالوں کے ساتھ:

بغیر اقتباس کے کلیدیں

چابیاں دوہری اقتباسات میں ہونی چاہئیں۔

Before:
{ name: "باب" }
After:
{ "name": "باب" }

حل: کسی بھی غیر اقتباس شدہ آبجیکٹ کیز کے اردگرد ڈبل کوٹس شامل کرتا ہے۔

سنگل کوٹس استعمال کیے گئے

JSON صرف اسٹرنگز کے لیے ڈبل کوٹس قبول کرتا ہے۔

Before:
{ 'کردار': 'ایڈمن' }
After:
{ "role": "منتظم" }

حل: تمام سٹرنگز میں سنگل کوٹس کو ڈبل کوٹس سے تبدیل کرتا ہے۔

آخری کومے

آخری آئٹم کے بعد کوئی قوس نہیں لگائی جا سکتی۔

Before:
{ "a": 1, "b": 2, }
After:
{ "a": 1, "b": 2 }

حل: اضافی کوما کو ہٹا دیتا ہے۔

غیر مماثل یا بند نہ ہونے والے قوسین

تمام بریکٹس اور بریکٹ یا کلیے درست طریقے سے بند ہونے چاہئیں۔

Before:
[1, 2, 3
After:
[1, 2, 3]

حل: غائب بند کرنے والے بریکٹس یا قوسین شامل کیے گئے ہیں۔

کوما کی کمی یا زیادتی

ایری اور آبجیکٹ کے آئٹمز کو ایک ہی کوما سے الگ کرنا چاہیے۔

Before:
{ "a": 1 "b": 2 }
After:
{ "a": 1, "b": 2 }

درست کریں: غائب کامے شامل کریں، یا دہرائے گئے علامات کو ہٹا دیں۔

تبصرے کی لائنیں موجود ہیں

معیاری JSON میں تبصرے کی اجازت نہیں ہوتی (جیسے // یا /* ... */)۔

Before:
{ "id": 1, // صارف کی شناخت
 "active": true }
After:
{ "id": 1, "active": true }

حل: ان پٹ سے تبصرہ والی لائنیں ہٹا دیتا ہے۔

غلط نمبر فارمیٹس

صرف سادہ اعشاریہ اعداد درست ہیں (NaN، لامتناہی، یا ہیکساڈیسیمل نہیں)۔

Before:
{ "val": NaN }
After:
{ "val": null }

حل: غلط نمبروں کو null سے تبدیل کرتا ہے۔

غیر محفوظ کنٹرول کریکٹرز

سٹرنگز میں نئی لائنز جیسے کریکٹرز کو اسکِیپ کرنا ضروری ہے۔

Before:
{ "msg": "لائن1
لائن2" }
After:
{ "msg": "لائن1\nلائن2" }

درست کریں: کنٹرول کریکٹرز کی صحیح فرار دہی کریں۔

آبجیکٹ میں دہرائے گئے کلیدیں

ایک ہی آبجیکٹ میں دہرائے گئے کلیدیں ابہام کا باعث بنتی ہیں۔

Before:
{ "name": "اے", "name": "بی" }
After:
{ "name": "بی" }

درست کریں: کسی بھی نقل کلید کے لیے صرف آخری قدر کو رکھتا ہے۔

غلط ساخت کے ارے

آرے میں اشیاء کے درمیان بریکٹ اور کامے ہونا ضروری ہیں۔

Before:
[ ۱ ۲ ۳ ]
After:
[ 1, 2, 3 ]

حل کریں: صف کے عناصر کے درمیان گمشدہ کامے شامل کریں۔

خالی ان پٹ یا صرف خالی جگہ

JSON خالی نہیں ہو سکتا۔

Before:
After:
نل

حل: خالی ان پٹ پر null واپس کرتا ہے۔

مثال: خراب JSON سے درست مرمت تک

غلط شکل میں JSON ان پٹ
{ user: 'ایلس', id: 42, roles: [ایڈمن, 'ایڈیٹر',] // اضافی کاما
 active: true }
مرمت شدہ JSON آؤٹ پٹ
{
  "user": "ایلس",
  "id": 42,
  "roles": [
    "ایڈمن",
    "ایڈیٹر"
  ],
  "active": true
}

اس JSON مرمت کے آلے کو کیسے استعمال کریں

  1. اپنا خراب JSON نیچے دیے گئے ایڈیٹر میں چسپاں کریں یا ٹائپ کریں۔
  2. عام نحو کی غلطیوں کا خودکار پتہ لگانے اور درست کرنے کے لیے 'مرمت' پر کلک کریں۔
  3. مرمت شدہ نتائج کا جائزہ لیں اور اپنی درست شدہ JSON کی نقل بنائیں۔

ہمیشہ مرمت شدہ JSON کو اہم ڈیٹا کے استعمال سے پہلے چیک کریں—پیچیدہ یا شدید خراب شدہ اندراجات کے لیے دستی اصلاحات کی ضرورت پڑسکتی ہے۔

JSON مرمت کے لیے کوڈ کی مثالیں

مختلف پروگرامنگ زبانوں میں JSON کی مرمت کیسے کریں دیکھیں۔

JavaScript (Node.js) with jsonrepair
Install: npm install jsonrepair
const { jsonrepair } = require('jsonrepair');
const broken = '{ name: "Bob", age: 42, }';
const fixed = jsonrepair(broken);
console.log(fixed); // Now valid JSON!
JavaScript (Node.js) simple fix (not for production)
Install: Standard library
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);
}
Python with dirtyjson
Install: pip install dirtyjson
import dirtyjson
broken = "{ name: 'Bob', age: 42 }"
obj = dirtyjson.loads(broken)
print(obj)
Python with demjson3
Install: pip install demjson3
import demjson3
broken = "{ name: 'Bob', age: 42 }"
obj = demjson3.decode(broken)
print(obj)
Go (using otto for JS-like object parsing)
Install: go get github.com/robertkrimen/otto
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)
  }
}
Java with org.json (manual fix for single quotes)
Install: org.json:json
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);
  }
}
C# with Newtonsoft.Json (try-catch, manual fix)
Install: Newtonsoft.Json
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 (manual fix for single quotes/unquoted keys)
Install: Standard library
<?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);
Ruby with json-repair (via gem or shell call)
Install: gem install json-repair or use npx jsonrepair
# Using system call to npx jsonrepair
require 'open3'
broken = "{ name: 'Bob', age: 42 }"
fixed, _ = Open3.capture2("echo #{broken.inspect} | npx jsonrepair")
puts fixed
Bash (npx jsonrepair CLI)
Install: npm install -g jsonrepair
echo "{ name: 'Bob', age: 42 }" | npx jsonrepair
Rust (suggest manual pre-processing)
Install: Standard libraries
// Rust does not have a json repair crate yet. Pre-process string with regex to fix simple cases, then use serde_json.
Kotlin (manual fix, like Java)
Install: org.json: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)
}
TypeScript (Node.js) with jsonrepair
Install: npm install jsonrepair
import { jsonrepair } from 'jsonrepair';
const broken = '{ name: "Bob", age: 42 }';
const fixed = jsonrepair(broken);
console.log(fixed);
Dart (manual string fixes)
Install: Standard library
var broken = "{ name: 'Bob', age: 42 }";
var fixed = broken.replaceAll("'", '"').replaceAllMapped(
  RegExp(r'([a-zA-Z0-9_]+):'),
  (m) => '"${m[ 1 ]}":',
);
print(fixed);
Elixir (manual fix with Regex)
Install: Standard library
broken = "{ name: 'Bob', age: 42 }"
fixed = Regex.replace(~r/'/, broken, """)
fixed = Regex.replace(~r/(\w+):/, fixed, ""\\1":")
IO.puts(fixed)