JSON ದುರಸ್ತಿ ಸಾಧನ

ತುರ್ತು, ಸುರಕ್ಷಿತ ಮತ್ತು ಉಚಿತವಾಗಿ ಮುರಿದ ಅಥವಾ ತಪ್ಪಾಗಿ ರಚಿತ JSON ಫೈಲ್‌ಗಳನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸರಿಪಡಿಸಿ ಮತ್ತು ಮರುಪಡಿಸಿ.

ಈ ಉಪಕರಣವು ಸ್ವಚಾಲಿತ ದೋಷ ತಿದ್ದುವಿಕೆಯ ಮೂಲಕ ಮುರಿದ ಅಥವಾ ಅಮಾನ್ಯ JSON ಅನ್ನು ಸರಿಪಡಿಸುತ್ತದೆ. ಇದು ರಫ್ತು ಮಾಡಿದ ಡೇಟಾ, ಲಾಗ್‌ಗಳು ಅಥವಾ ಕೈಯಿಂದ ಸಂಪಾದಿಸಿದ ಕಡತಗಳಲ್ಲಿ ಕಂಡುಬರುವ ಸಾಮಾನ್ಯ ಸಿಂಟ್ಯಾಕ್ಸ್ ಸಮಸ್ಯೆಗಳನ್ನು ಗುರಿಯಾಗಿಸುತ್ತದೆ—ಹಾಗು ಇಲ್ಲದಿದ ಉಲ್ಲೇಖ ಚಿಹ್ನೆಗಳು, ಅನಾವಶ್ಯಕ ಕಾಮಾಗಳು ಅಥವಾ ಹೊಂದಿದ್ದ bracket ಗಳು—ಮತ್ತು ಮಾನ್ಯ, ವಿಶ್ಲೇಷಣಾ ಅನುವಾಗುವ JSON ಅನ್ನು ಉತ್ಪನ್ನವಾಗಿ ನೀಡುತ್ತದೆ.

ನಿಮ್ಮ ಕೆಳಗಿನ JSON ಅನ್ನು ಮರುಮಾರಾಟ ಮಾಡಿ

JSON ರಿಪೇರಿ ಹೇಗೆ ಕೆಲಸ ಮಾಡುತ್ತದೆ

ಈ ಸಾಧನವು ನಿಮ್ಮ ನಮೂದಿನಲ್ಲಿರುವ ಸಾಮಾನ್ಯ JSON ವಾಕ್ಯರಚನೆ ಸಮಸ್ಯೆಗಳನ್ನು ತೇರ್ಪಡಿಸಿ, ನಿಶ್ಚಿತ ಪರಿಹಾರಗಳನ್ನು ಅನ್ವಯಿಸುವ ಮೂಲಕ ಸಾಧ್ಯವಿದ್ದರೆ ಮಾನ್ಯ JSON ಅನ್ನು ಉತ್ಪನ್ನ ಮಾಡುತ್ತದೆ.

  1. ನಿರ್ದೇಶನವನ್ನು ವಿಶ್ಲೇಷಿಸಿ ಸಾಮಾನ್ಯ ವಾಕ್ಯ ರಚನೆಯ ದೋಷಗಳನ್ನು ಕಂಡುಹಿಡಿಯುತ್ತದೆ, ಅಕ್ರಮ ಅಕ್ಷರಗಳು, ತಪ್ಪಾಗಿ ಇರಿಸಲಾದ ಕೊಲೆಗಳು ಮತ್ತು ತಪ್ಪಾದ ಸ್ಟ್ರಿಂಗ್ ಉಕ್ತಿಗಳನ್ನು ಸೇರಿಸಿಕೊಂಡು.
  2. ಅನೇಕ ಬಾರಿ ಸಂಭವಿಸುವ ತಪ್ಪುಗಳಿಗೆ ಪರಿಹಾರಗಳನ್ನು ಅನ್ವಯಿಸುತ್ತದೆ—ಹೀಗಾಗಿ ಕಳವು ಮುದ್ರೆಗಳನ್ನು ಸೇರಿಸುವುದು, ಅಗತ್ಯವಿಲ್ಲದ ಕೊನೆಯ ಕಾಮಾಗಳನ್ನು ತೆಗೆದುಹಾಕುವುದೂ ಹಾಗುಸ್ಕೋಳ (ಬ್ರಾಕೆಟ್‌ಗಳು) ಸರಿಪಡಿಸುವುದು.
  3. ಮರುಪರಿಪೂರ್ಣ ಮಾಡಿದ JSON ಅನ್ನು ಹೊರತರುತ್ತದೆ. ಬಹುತೇಕ ಸಂದರ್ಭಗಳಲ್ಲಿ, ಫಲಿತಾಂಶವನ್ನು ತಕ್ಷಣವೇ ಪಾರ್ಸ್ ಮಾಡಬಹುದಾಗಿದೆ ಅಥವಾ ಬಳಸಬಹುದಾಗಿದೆ.
  4. ರಚನೆಯನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸರಿಪಡಿಸಲಾಗದಿದ್ದರೆ, ನಿಖರವಾದ ದೋಷ ಸಂದೇಶವು ತೋರಿಸಲಾಗುತ್ತದೆ, ಇದರಿಂದ ನೀವು ನಿಮ್ಮ ನಮೂದನ್ನು ಸರಿಪಡಿಸಬಹುದು.

ಸಾಮಾನ್ಯ JSON ದೋಷಗಳು ಮತ್ತು ಅವುಗಳನ್ನು ಸರಿಪಡಿಸುವ ವಿಧಾನಗಳು

ಈ ಟೂಲ್ ಶೇಖರಿಸಬಹುದಾದ ಸಾಮಾನ್ಯ JSON ತಪ್ಪುಗಳು ಈ ಕೆಳಕಂಡವುಗಳಾಗಿದ್ದು, ಪ್ರತಿ ತಪ್ಪಿಗೆ ಉದಾಹರಣೆಗಳೂ ನೀಡಲಾಗಿದೆ:

ಉಲ್ಲೇಖವಿಲ್ಲದ ಕೀಗಳು

ಕೀಲಿಗಳು ಡಬಲ್ ಕೋಟೇಶನ್‌ಗಳಲ್ಲಿ ಇರಬೇಕು.

Before:
{ name: "ಬಾಬ್" }
After:
{ "name": "ಬಾಬ್" }

ಹೆಚ್ಚಿನ ಸುಧಾರಣೆ: ಯಾವುದೇ ಉಲ್ಲೇಖಿಸಲಾಗದ ಆಬ್ಜೆಕ್ಟ್ ಕೀಗಳಿಗೆ දෙಮುಳ್ಳಾದ ಉಲ್ಲೇಖಗಳನ್ನು ಸೇರಿಸುತ್ತದೆ.

ಒಳಗಿನ ಅಳತೆಯ ಒಂದುಲೆಾಗಿ (' ') ಬಳಸಲಾಗಿದೆ

JSON ಸ್ಟ್ರಿಂಗ್‌ಗಳಿಗೆ ಡಬಲ್ ಕ್ವೋಟ್‌ಗಳನ್ನು ಮಾತ್ರ ಒಪ್ಪಿಕೊಳ್ಳುತ್ತದೆ.

Before:
{ 'ಪಾತ್ರ': 'ನಿರ್ವಾಹಕರು' }
After:
{ "ಭೂಮಿ": "ನಿರ್ವಹಣೆ" }

ಸರಿಪಡಿಸಿ: ಎಲ್ಲಾ 문자열ಗಳಿಗೆ ಒಂದು ಉಲ್ಲೇಖಗಳನ್ನು ಎರಡು ಉಲ್ಲೇಖಗಳಿಂದ ಹೇರಲಾಗಿದೆ.

ಅಂತಿಮ ಕಾಲಗಳನ್ನು ಎಲ್ಲಿ ಬಳಸಬೇಕು

ಕೊನೆಯ ಐಟಂನ ನಂತರ ಕಾಮಾ ಅವಕಾಶವಿಲ್ಲ.

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, "ಸಕ್ರಿಯ": ಸತ್ಯ }

ನಿರ್ವಹಣೆ: ಇನ್‌ಪುಟ್‌ನಿಂದ ಕಾಮೆಂಟ್ ಸಾಲುಗಳನ್ನು ತೆಗೆದುಹಾಕುತ್ತದೆ.

ಅಮಾನ್ಯ ಸಂಖ್ಯಾ ಸ್ವರೂಪಗಳು

ಕೆवलಾ ಸರಳ ದಶಮಲವ ಸಂಖ್ಯೆಗಳಿಗಷ್ಟೇ ಅನುಮತಿ ಇದೆ (NaN, ಅನಂತತೆ, ಅಥವಾ ಹೆಕ್ಸಾ ವಿನ್ಯಾಸ ಇಲ್ಲದೆ).

Before:
{ "val": ಅಸಂಖ್ಯ}
After:
{ "val": null }

ಗಮನಿಸಿ: ಅಮಾನ್ಯ ಸಂಖ್ಯೆಗಳನ್ನ null (ಶೂನ್ಯ) ಅಳವಡಿಸಿ ಬದಲಾಯಿಸಲಾಗಿದೆ.

ಬಂದಲಿರದ ನಿಯಂತ್ರಣ ಅಕ್ಷರಗಳು

ಸ್ಟ್ರಿಂಗ್‌ಗಳಲ್ಲಿನ ಹೊಸ ಸಾಲುಗಳು ಇತ್ಯಾದಿ ಅಕ್ಷರಗಳನ್ನು ತಪ್ಪಿಸಿಕೊಂಡಿರಬೇಕು.

Before:
{ "msg": "ಲೈನ್ 1
ಲೈನ್ 2" }
After:
{ "msg": "ನಿರ್ದೇಶ 1\nನಿರ್ದೇಶ 2" }

ಸರಿ ಮಾಡಿ: ನಿಯಂತ್ರಣ ಅಕ್ಷರಗಳನ್ನು ಸರಿಯಾಗಿ ನಿರ್ಗಮಿಸುತ್ತದೆ.

ವಸ್ತುಗಳಲ್ಲಿ ನಕಲಿ ಕೀಗಳು

ಒಂದೇ ವಸ್ತುವಿನಲ್ಲಿನ ನಕಲಿ ಕೀಲಿಗಳು ಸ್ಪಷ್ಟತೆಯನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತವೆ.

Before:
{ "name": "ಎ" , "name": "ಬಿ" }
After:
{ "name": "ಬಿ" }

ನಿರ್ವಹಿಸಿ: ಯಾವುದೇ ನಕಲಿ ಕೀಲಿಗೆ ಕೇವಲ ಕೊನೆಯ ಮೌಲ್ಯವನ್ನು ಮಾತ್ರ ಇರಿಸುತ್ತದೆ.

ತಪ್ಪು ರಚನೆಯ ಅರೆಗಳು

ಆರೆಗಳು ಐಟಂಗಳ ನಡುವಿನ ಕೂಗೆಗಳು ಮತ್ತು ಕಮಾಗಳನ್ನು ಹೊಂದಿರಬೇಕು.

Before:
[ ೧ ೨ ೩ ]
After:
[ ೧, ೨, ೩ ]

ಸರಿಪಡಿಸಿ: ಸರಣಿಯ ಅಂಶಗಳ ನಡುವೆ ಕಳೆದುಹೋದ ಕಾಮಾಗಳು ಸೇರಿಸಲಾಗಿದೆ.

ಖಾಲಿ ಇನ್‌ಪುಟ್ ಅಥವಾ ಸಂಪೂರ್ಣ ಶೂನ್ಯ ಸ್ಥಳಗಳು

JSON ಖಾಲಿಯಾಗಿರಬಾರದು.

Before:
After:
ಶೂನ್ಯ

ತಿದ್ದುಪಡಿಗೆ: ಖಾಲಿ ಇನ್ಪುಟ್‌ಗೆ null ಅನ್ನು ಹಿಂತಿರುಗಿಸುತ್ತದೆ.

ಉದಾಹರಣೆ: ಕುಸಿದ JSON ನಿಂದ ಮಾನ್ಯ ಮರುಮಾರ್ಪುಗೆ

ಅಸಧಾರಣीय JSON ಇನ್‌ಪುಟ್
{ user: 'ಅಲಿಸ್', id: 42, roles: [ನಿರ್ವಹಣಾಧಿಕಾರಿ, 'ಸಂಪಾದಕ',] // ಹೆಚ್ಚುವರಿ ಅಡ್ಡಕೋಟಿ
 active: true }
ಮುರಿದ JSON ಔಟ್‌ಪುಟ್ ಅನ್ನು ಮರಳಿ ಸಂರಕ್ಷಿಸಲಾಗಿದೆ
{
  "user": "ಅಲಿಸ್",
  "id": 42,
  "roles": [
    "ನಿರ್ವಹಣೆಗಾರ",
    "ಸಂಪಾದಕ"
  ],
  "active": ಸತ್ಯ
}

ಈ 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)