शामिल हैं, मैं निम्नलिखित JSON को एसन के साथ पार्स करने का प्रयास कर रहा हूं।फ़ील्ड नामों के साथ पार्स JSON जिसमें आरक्षित कीवर्ड
{
"data": [
{
"id": "34",
"type": "link",
"story": "foo"
},
{
"id": "35",
"type": "link",
"story": "bar"
}
]
}
चूंकि मैं ध्यान नहीं देना चाहते क्षेत्र का एक बहुत हैं, यह I should use GHC generics लगता है। लेकिन डेटा प्रकार परिभाषा कैसे लिखें जो data
और type
जैसे हास्केल कीवर्ड का उपयोग करती है? निश्चित रूप से निम्नलिखित देता है: parse error on input `data'
data Feed = Feed {data :: [Post]}
deriving (Show, Generic)
data Post = Post {
id :: String,
type :: String,
story :: String
}
deriving (Show, Generic)
धन्यवाद, अच्छी तरह से काम करता है! क्या इस दृष्टिकोण को 'सामान्य' के साथ जोड़ना भी संभव होगा? कहें, 'पोस्ट' प्रकार में' टाइप' विशेषता नहीं थी, ऐसा लगता है कि 'फीड' के' पार्सजॉन 'को मैन्युअल रूप से कार्यान्वित करते समय मुझे' पोस्ट व्युत्पन्न (जेनेरिक) 'नहीं हो सकता है और फिर उन्हें प्रश्न के रूप में संयोजित करें । – mb21
अंत में, मैं सोच रहा था कि जेएसओएन में 'डेटा' विशेषता से छुटकारा पाने के लिए मुझे वास्तव में 'फीड' डेटा प्रकार की आवश्यकता है या क्या मैं किसी भी तरह सीधे पोस्ट पर जा सकता हूं। – mb21
@ mb21 [ए] से जेएसओएन/टोजसन उदाहरण हैं, इसलिए यदि आप जो कुछ करना चाहते हैं वह पदों की एक सूची क्रमबद्ध है, तो इसे सीधे 'एनकोड सूचीऑफपोस्ट' के साथ करें। और आप जेनेरिक के साथ दृष्टिकोण को जोड़ सकते हैं, जेनेरिक का उपयोग करके किसी भी अन्य इंस्टेंस की तरह पोस्ट के लिए उदाहरण प्राप्त करें, और मैन्युअल रूप से फ़ीड के लिए उदाहरण लिखें। यह सिर्फ काम करता है। – bennofs