on master help sign in
Check for empty array/object values (oops!)
d58a684Bryan O'Sullivan
Data/Aeson/Parser/Internal.hs+5−1
@@ -117,7 +117,11 @@ array_' = {-# SCC "array_'" #-} do
117 return (Array vals)
117 return (Array vals)
118
118
119commaSeparated :: Parser a -> Word8 -> Parser [a]
119commaSeparated :: Parser a -> Word8 -> Parser [a]
120−commaSeparated item endByte = loop
120+commaSeparated item endByte = do
121+ w <- A.peekWord8'
122+ if w == endByte
123+ then A.anyWord8 >> return []
124+ else loop
121 where
125 where
122 loop = do
126 loop = do
123 v <- item <* skipSpace
127 v <- item <* skipSpace