这个问题与有关。 问题。
这里是我想由JSON提供的数据类型:
data ProdObject = MKSpair (Text, Text)
| MKSLpair (Text, [Text])
| MKSOpair (Text, ProdObject)
| MKObject ProdObject
| End
deriving Show
Here是我与整个数据一起工作的样本。
这里是我的典型定义,造成错误。 I ve used this 。 我不敢确定错误是告诉我如何确定我的类型,还是我会走。 如果真的错误是直截了当的,我就好像就如何确定我的类型提出一些建议,加上对我可能做的错误但已经注意到的其他方面的任何建议。
instance FromJSON ProdObject where
parseJSON (Object o) = MKObject <$> parseJSON o
parseJSON (String s, String t) = MKSpair (s, t)
parseJSON (String s, Object o) = MKSOpair (s, MKObject <$> parseJSON o)
parseJSON (String s, Array a) = MKSLpair (s, V.toList a)
parseJSON (Done d) = End
parseJSON _ = mzero
这里,我现在有错误:
ghcifoo> :load test
[1 of 1] Compiling Main ( test.hs, interpreted )
test.hs:23:52:
Couldn t match expected type `Value
with actual type `Data.Map.Map Text Value
Expected type: Value
Actual type: Object
In the first argument of `parseJSON , namely `o
In the second argument of `(<$>) , namely `parseJSON o
Failed, modules loaded: none.
最新数据:如果I m右面一带穿甲型。 如果我错了,则回到提纲
data ProdObject = MKSpair (Text, Text)
| MKSLpair (Text, [Text])
| MKSOpair (Text, ProdObject)
| MKObject ProdObject (k,v)
| End
我也以不完整的方式反映了这一变化。 我提到这一点是为了问我是否走上正轨。
parseJSON (Object (k,v)) = MKObject ...
如果我站在正确的轨道上,我认为我要么可以说出其他东西,要么至少要问一个具体问题。 回答谁?