9 पॉइंट द्वारा GN⁺ 2024-12-09 | 2 टिप्पणियां | WhatsApp पर शेयर करें
  • JSON5, JSON फ़ाइल फ़ॉर्मैट का एक विस्तार है, जिसे इस तरह बनाया गया है कि लोग इसे सीधे लिख और maintain कर सकें
    • यह मशीनों के बीच संचार के उद्देश्य से इस्तेमाल नहीं किया जाता
    • 2012 में शुरू हुआ, और 2022 तक इसे हर हफ़्ते 6.5 करोड़ से अधिक डाउनलोड मिले; यह npm पर सबसे अधिक depend किए जाने वाले पैकेजों के शीर्ष 0.1% में शामिल है
    • Chromium, Next.js, Babel, Retool, WebStorm जैसे प्रमुख प्रोजेक्ट्स में अपनाया गया है
    • MacOS और iOS जैसे Apple प्लेटफ़ॉर्म्स पर डिफ़ॉल्ट रूप से समर्थित है
  • JSON5 की विशेषताएँ
    • यह JSON का superset है, और ECMAScript 5.1 के कुछ syntax को शामिल करता है
    • JSON5 फ़ाइलें हमेशा वैध ES5 फ़ाइलें होती हैं
  • विस्तारित ECMAScript 5.1 फीचर्स
    • ऑब्जेक्ट
      • ऑब्जेक्ट keys, ECMAScript 5.1 IdentifierName हो सकती हैं
      • ऑब्जेक्ट में एक single trailing comma की अनुमति है
    • ऐरे
      • ऐरे में एक single trailing comma की अनुमति है
    • स्ट्रिंग
      • स्ट्रिंग को single quotes में घेरा जा सकता है
      • newline character को escape करके इसे कई लाइनों में लिखा जा सकता है
      • इसमें character escapes शामिल हो सकते हैं
    • संख्या
      • इसे hexadecimal में व्यक्त किया जा सकता है
      • इसमें leading या trailing decimal point हो सकता है
      • इसमें IEEE 754 positive infinity, negative infinity, और NaN शामिल हो सकते हैं
      • यह explicit plus sign से शुरू हो सकता है
    • टिप्पणियाँ
      • single-line और multi-line comments की अनुमति है
    • whitespace
      • अतिरिक्त whitespace characters की अनुमति है
  • API
    • JSON5.parse(): JSON5 स्ट्रिंग को parse करके JavaScript value या object बनाता है
    • JSON5.stringify(): JavaScript value को JSON5 स्ट्रिंग में बदलता है
  • CLI
    • JSON5 को JSON में बदलने या JSON5 दस्तावेज़ के syntax को validate करने के लिए CLI उपलब्ध है
  • ECMAScript संगतता
    • JSON5 को ES5 के साथ पूरी तरह संगत बनाने के लिए डिज़ाइन किया गया था, लेकिन U+2028 और U+2029 characters, ES5 में अनुमत नहीं हैं
    • ES2019 में इन characters की अनुमति दी गई, जिससे JSON और JSON5, ES2019 के साथ पूरी तरह संगत हो गए
  • लाइसेंस
    • यह MIT लाइसेंस के तहत उपलब्ध है

2 टिप्पणियां

 
GN⁺ 2024-12-09
Hacker News राय
  • JSON केवल double-quoted strings को सपोर्ट करता है, जिससे quotes के इस्तेमाल पर होने वाली बहस खत्म हो जाती है। Comments और trailing commas जोड़ने के लिए JSONC इस्तेमाल किया जा सकता है
    • JSONC का इस्तेमाल Visual Studio Code में settings format के रूप में होता है
  • मुझे लगता है कि JSON5 का नाम अनैतिक है। मूल लेखक की मंज़ूरी के बिना इसे अगले version जैसा संकेत देना अनुचित है
  • मैं JSON5 को पसंद करता हूँ, और मुझे YAML की readability कमज़ोर लगती है। YAML files को समझने के लिए मैं अक्सर JSON conversion tools का इस्तेमाल करता हूँ
  • JSON अपनी सादगी की वजह से व्यापक रूप से इस्तेमाल होता है। XML या YML जैसे जटिल alternatives उपयुक्त नहीं लगते
    • जटिल formats इस्तेमाल करने पर समस्याएँ आ सकती हैं
  • अफ़सोस है कि EDN को Clojure ecosystem के बाहर ज़्यादा अपनाया नहीं गया
    • Standard नहीं है, लेकिन users इसे बिना समस्या के इस्तेमाल कर रहे हैं
  • JSON के special character issue की ओर इशारा किया गया है। JSON को UTF-8 के रूप में परिभाषित किया गया है, लेकिन इसमें 7-bit ASCII control characters को गलत तरीके से दर्ज करने की त्रुटि है
    • RFC में 33 control characters शामिल होने चाहिए
  • TOML की सिफारिश की गई है, और इसे human readability और tool support का बेहतरीन संयोजन माना गया है
  • यह माना गया है कि JSON/YAML alternatives में ज़्यादा types को support करना अच्छा विचार नहीं है
    • NestedText लगभग आदर्श है, लेकिन यह कई syntaxes का इस्तेमाल करता है और comments को data model में शामिल नहीं करता
  • यह बात उठाई गई है कि JSON5 ने BMP के बाहर के Unicode characters के लिए \U escape sequence पेश नहीं किया
    • UTF-16 surrogate pairs का इस्तेमाल करना झंझट भरा है और Unicode standard के अनुरूप नहीं है
  • मेरा मानना है कि JSON में comments और native datetime type के अलावा दूसरी सुविधाओं की ज़रूरत नहीं है
    • trailing commas उपयोगी लगते हैं