मैं data
रिकॉर्ड कर रहा हूं JIRA
JSON
ऑब्जेक्ट को मार्शल करने के लिए रिकॉर्ड। समस्या यह है कि, एकाधिक ऑब्जेक्ट्स में नाम/मान जोड़े के लिए समान लेबल होते हैं।हास्केल नाम स्थान से कैसे निपटें?
(कर्ल से लौटे और स्वरूपित)
{"expand":"schema,names"
,"startAt":0
,"maxResults":2
,"total":74
,"issues":[
{"expand":"editmeta,renderedFields,transitions,changelog,operations"
,"id":"183614"
,"self":"https://10.64.16.44/rest/api/latest/issue/183614"
,"key":"BNAP-339"
,"fields":{"versions":[
{"self":"https://10.64.16.44/rest/api/2/version/28240"
,"id":"28240"
,"name":"2012-12-07"
,"archived":false
,"released":false
}
]
,"status":{"self":"https://10.64.16.44/rest/api/2/status/1"
,"description":"The issue is open and ready for the assignee to start work on it."
,"iconUrl":"https://10.64.16.44/images/icons/status_open.gif"
,"name":"Open"
,"id":"1"
}
,"description":"Do Re Mi Fa"
,"resolution":null
}
}
]
जब मैं समस्याग्रस्त इसी हास्केल data
रिकॉर्ड मैं का निर्माण:
data Issue = Issue {expand :: String
,id :: String
,self :: String
,key :: String
,fields :: Fields
} deriving Generic
data Version = Version {self :: String
,id :: String
,name :: String
,archived :: Bool
,released :: Bool
} deriving Generic
और 'आईडी' और 'स्वयं' संघर्ष होगा उदाहरण के लिए । यह मेरे लिए हुआ, मैं रिकॉर्ड में नामों को बदलकर इसे मैन्युअल रूप से बनाए गए FromJSON
उदाहरण के साथ ठीक करके इसे हल कर सकता हूं। किसी भी वैकल्पिक समाधान का स्वागत किया जाएगा।
ध्यान दें कि 'HasFoobar' शैली typeclasses जब यह साफ है, अच्छी तरह से संरचित हास्केल कोड लिखने की बात आती है लगभग हमेशा एक भयानक विचार कर रहे हैं: उदाहरण के लिए, निम्न डेटा प्रकार क्षेत्र संघर्ष के बिना अपने मूल्य का प्रतिनिधित्व करने में सक्षम है। लेकिन इंटरऑप प्रयोजनों के लिए गैर-हास्केल कोड की संरचना से मेल खाने का प्रयास करते समय, यदि दूसरी तरफ अधिभारित कार्यों और/या उप प्रकार के पदानुक्रमों पर भारी निर्भर करता है, तो कोई बेहतर दृष्टिकोण नहीं हो सकता है। –
मैं उस भाग को ऊपर उठा रहा हूं जहां आपने अलग-अलग फाइलों की सिफारिश की थी। कक्षाओं को खराब नामस्थान समाधान के लिए टाइप करें क्योंकि उपयोगकर्ताओं के प्रकारों के कारण वे बहुत मुश्किल हैं और चुपचाप असफल हो जाएंगे और गलत प्रकार पर लागू होने पर गलत चीज करेंगे। –