on master help sign in
Tell which key failed to parse in maps
6c60affOleg Grenrus
Data/Aeson/Types/FromJSON.hs+2−2
@@ -1278,7 +1278,7 @@ instance (FromJSONKey k, Ord k) => FromJSON1 (M.Map k) where
1278 FromJSONKeyText f -> withObject "Map k v" $
1278 FromJSONKeyText f -> withObject "Map k v" $
1279 fmap (H.foldrWithKey (M.insert . f) M.empty) . H.traverseWithKey (\k v -> p v <?> Key k)
1279 fmap (H.foldrWithKey (M.insert . f) M.empty) . H.traverseWithKey (\k v -> p v <?> Key k)
1280 FromJSONKeyTextParser f -> withObject "Map k v" $
1280 FromJSONKeyTextParser f -> withObject "Map k v" $
1281− H.foldrWithKey (\k v m -> M.insert <$> f k <*> (p v <?> Key k) <*> m) (pure M.empty)
1281+ H.foldrWithKey (\k v m -> M.insert <$> f k <?> Key k <*> p v <?> Key k <*> m) (pure M.empty)
1282 FromJSONKeyValue f -> withArray "Map k v" $ \arr ->
1282 FromJSONKeyValue f -> withArray "Map k v" $ \arr ->
1283 M.fromList <$> (Tr.sequence .
1283 M.fromList <$> (Tr.sequence .
1284 zipWith (parseIndexedJSONPair f p) [0..] . V.toList $ arr)
1284 zipWith (parseIndexedJSONPair f p) [0..] . V.toList $ arr)
@@ -1346,7 +1346,7 @@ instance (FromJSONKey k, Eq k, Hashable k) => FromJSON1 (H.HashMap k) where
1346 FromJSONKeyText f -> withObject "HashMap k v" $
1346 FromJSONKeyText f -> withObject "HashMap k v" $
1347 fmap (mapKey f) . H.traverseWithKey (\k v -> p v <?> Key k)
1347 fmap (mapKey f) . H.traverseWithKey (\k v -> p v <?> Key k)
1348 FromJSONKeyTextParser f -> withObject "HashMap k v" $
1348 FromJSONKeyTextParser f -> withObject "HashMap k v" $
1349− H.foldrWithKey (\k v m -> H.insert <$> f k <*> (p v <?> Key k) <*> m) (pure H.empty)
1349+ H.foldrWithKey (\k v m -> H.insert <$> f k <?> Key k <*> p v <?> Key k <*> m) (pure H.empty)
1350 FromJSONKeyValue f -> withArray "Map k v" $ \arr ->
1350 FromJSONKeyValue f -> withArray "Map k v" $ \arr ->
1351 H.fromList <$> (Tr.sequence .
1351 H.fromList <$> (Tr.sequence .
1352 zipWith (parseIndexedJSONPair f p) [0..] . V.toList $ arr)
1352 zipWith (parseIndexedJSONPair f p) [0..] . V.toList $ arr)