होना चाहिए, मुझे यह त्रुटि मिली, और मुझे इस प्रश्न का कोई उचित उत्तर नहीं मिला, इसलिए मैंने सोचा कि मैं समस्या का सारांश लिखूंगा।एक JSON टेक्स्ट में कम से कम दो ऑक्टेट्स
आप आईआरबी में इस स्निपेट चलाते हैं:
JSON.parse(nil)
आपको निम्न त्रुटि दिखाई देंगे:
TypeError: can't convert nil into String
मैं तरह का समारोह उम्मीद कर रहा था nil
वापस जाने के लिए, और नहीं एक TypeError
।
JSON::ParserError: A JSON text must at least contain two octets!
कि ठीक है और अच्छी तरह है: आप to_s
का उपयोग कर सभी इनपुट कन्वर्ट है, तो आप ओकटेट त्रुटि दिखाई देगी। आप नहीं जानते कि क्या एक ओकटेट है, एक सारांश और समाधान के लिए इस पोस्ट पढ़ें: What is a JSON octet and why are two required?
समाधान
चर आप में गुजर रहे एक खाली स्ट्रिंग है। JSON.parse
विधि में खाली स्ट्रिंग का उपयोग करने का प्रयास न करें।
प्रश्न
तो, अब मैं त्रुटि का कारण पता है, क्या पैटर्न का उपयोग करना चाहिए इस संभाल करने के लिए? मैं nil
मानों को अनुमति देने के लिए जेएसओएन लाइब्रेरी को बंदर पैच करने के लिए थोड़ा नाराज हूं। किसी भी सुझाव के लिए बहुत आभार होगा।
'" "' है, जो दो ऑक्टेट है। जो भी लिखा हो सकता है कि एन्कोडर/पार्सर ने यह नहीं माना कि 'शून्य' भी वैध जावास्क्रिप्ट मान है। –