मैं कुछ JSON को रिकॉर्ड प्रकार में पार्स करने के लिए डेटा का उपयोग कर रहा हूं। समय-समय पर डेटा JSON में जोड़ा जाता है और यह मेरा कोड टूट जाता है Aeson के प्रभाव से कुछ शिकायत के रूप में:दोष सहिष्णु JSON पार्सिंग
की उम्मीद 21 नाम/मान युग्म के साथ वस्तु लेकिन मिला 23 नाम/मान
मैं वास्तव में जेएसओएन को एक गलती सहनशील तरीके से पार्स करना पसंद करूंगा - मुझे कोई परवाह नहीं है कि बाद में जेएसओएन में अधिक फ़ील्ड जोड़े गए हैं, बस जो कुछ भी कर सकते हैं उसे पार्स करें! क्या इस गलती सहनशीलता को हासिल करने का कोई तरीका है?
myRecordFromJSONString :: BS.ByteString -> Maybe MyRecord
myRecordFromJSONString s = case Data.Attoparsec.parse json s of
Done _rest res -> Data.Aeson.Types.parseMaybe parseJSON res
_ -> Nothing
मैं जोड़ने चाहिए कि मैं Data.Aeson.TH से deriveJSON उपयोग कर रहा हूँ पार्स कोड उत्पन्न करने के लिए: यहाँ मेरी कोड है। अगर मैं मैन्युअल रूप से FromJSON कोड लिखता हूं तो यह गलती सहनशील है लेकिन मुझे ऐसा नहीं करना है ...