4
MongoDB Data.Bson의 ToJSON 및 FromJSON 인스턴스를 생성하기 위해 Data.Aeson.TH deriveJSON을 사용하려고합니다. 순간MongoDB와 Aeson을 사용하여 지원되지 않는 UString BSON
내가 사용하고 있습니다 : 컴파일시에 다음과 같은 오류가 발생
$(deriveJSON id ''Data.Bson.Field)
$(deriveJSON id ''Data.Bson.Value)
$(deriveJSON id ''Data.Bson.Binary)
$(deriveJSON id ''Data.Bson.UUID)
$(deriveJSON id ''Data.Bson.UserDefined)
$(deriveJSON id ''Data.Bson.Regex)
$(deriveJSON id ''Data.Bson.Symbol)
$(deriveJSON id ''Data.Bson.MinMaxKey)
$(deriveJSON id ''Data.Bson.MongoStamp)
$(deriveJSON id ''Data.Bson.Javascript)
$(deriveJSON id ''Data.Bson.ObjectId)
$(deriveJSON id ''Data.Bson.MD5)
$(deriveJSON id ''Data.Bson.Function)
$(deriveJSON id ''Data.Bson.UString)
:
Exception when trying to run compile-time code:
Data.Aeson.TH.withType: Unsupported type: TySynD Data.UString.UString [] (ConT Data.CompactString.UTF8.CompactString)
Code: deriveJSON (id) 'UString
나는 여기에 문제가 BSON 문서 내의 문자열이 Ustring이라고 생각합니다 . BSON 데이터 내에서 예상되는 UString을 다른 String 유형으로 변환하거나 매핑해야하지만 어떻게해야하는지에 관해서는 이해할 수 없습니다.
아이손은 ([아이손 SRC] (HTTP를 유형의 동의어를 지원하지 않는 것 같습니다. org/packages/archive/aeson/0.4.0.0/doc/html/src/Data-Aeson-TH.html # withType)). 그러나 'UString'은 타입 동의어입니다 ([bson doc] (http://hackage.haskell.org/packages/archive/bson/0.1.6/doc/html/Data-UString.html)). 'withType'에'TySynD' 케이스를 추가하면 도움이 될지 모르겠지만 확실하지 않습니다. –
[aesonBson] (http://hackage.haskell.org/package/AesonBson)에도 관심이있을 수 있습니다. – nh2