UTILS.
100% ब्राउज़र में
{ }

JS Object से सख्त JSON

एक loose JavaScript object literal — unquoted keys, single quotes, trailing commas, comments — को सख्त मान्य JSON में मरम्मत करें, बिना eval के।

— आउटपुट यहाँ दिखेगा —

इस टूल के बारे में

JS Object से सख्त JSON टूल एक loose JavaScript या JSON5-style object literal को सख्त, मान्य JSON में मरम्मत करता है। यह एक हाथ से लिखे tokenizer पर बना है — यह कभी eval या new Function का उपयोग नहीं करता — इसलिए यह एक सख्त Content Security Policy के तहत सुरक्षित है और अविश्वसनीय text पेस्ट करने के लिए सुरक्षित है। सब कुछ आपके ब्राउज़र में चलता है।

यह उन चीज़ों को स्वीकार करता है जिन्हें असली JSON अस्वीकार करता है: unquoted identifier keys, single-quoted strings, ] या } से पहले trailing commas, // line और /* block */ comments, hexadecimal (0xFF), octal और binary literals, leading-plus और leading-dot numbers (+1, .5), और मान undefined, NaN, और Infinity। Keys को double quotes के साथ फिर से quote किया जाता है, strings को सही ढंग से फिर से escape किया जाता है, comments और trailing commas हटा दिए जाते हैं, और numbers को plain JSON numbers में सामान्यीकृत किया जाता है। आप चुनते हैं कि undefined (null में बदलें या key छोड़ दें) और non-finite numbers (null में बदलें या एक error उठाएँ) को कैसे संभालना है, फिर मान को आपके चुने हुए indent पर JSON.stringify के साथ फिर से serialize किया जाता है — 2 spaces, 4 spaces, tabs, या minified।

जब input पार्स नहीं किया जा सकता, तो टूल पहले syntax error को उसकी line और column के साथ रिपोर्ट करता है ताकि आप समस्या को जल्दी ढूंढ सकें। यह एक सख्त JSON formatter का पूरक है, जो केवल loose input को अस्वीकार करता है — यहाँ लक्ष्य copied console output, config snippets, और हाथ से संपादित objects को ऐसे JSON में बचाना है जिसे कोई भी parser स्वीकार करेगा।

अक्सर पूछे जाने वाले प्रश्न

यह कौन सा loose syntax स्वीकार करता है?
Unquoted keys, single-quoted strings, trailing commas, // और /* */ comments, hex/octal/binary numbers, leading-plus और leading-dot numbers, और literals undefined, NaN, और Infinity — वे सामान्य चीज़ें जो copied JS objects को JSON के रूप में अमान्य बनाती हैं।
क्या यह पार्स करने के लिए eval का उपयोग करता है?
नहीं। यह एक हाथ से लिखे tokenizer और recursive-descent parser का उपयोग करता है, कभी eval या new Function नहीं, इसलिए यह एक सख्त Content Security Policy के तहत काम करता है और अविश्वसनीय input के लिए सुरक्षित है। यह केवल data बनाता है, कभी कोड नहीं चलाता।
undefined, NaN, और Infinity को कैसे संभाला जाता है?
JSON में ऐसे कोई मान नहीं हैं। आप चुनते हैं: undefined null बन सकता है या इसकी key छोड़ी जा सकती है, और NaN/Infinity null बन सकते हैं या एक error उठा सकते हैं। यह आउटपुट को किसी भी तरह सख्ती से मान्य JSON रखता है।
जब input अमान्य हो तो क्या होता है?
Parser पहली वास्तविक syntax error पर रुक जाता है और इसे उस line और column के साथ रिपोर्ट करता है जहाँ यह हुई, ताकि आप अनुमान लगाने के बजाय आपत्तिजनक character का पता लगा सकें और ठीक कर सकें।

और टूल