У меня есть список таких объектов aeson
[object ["key1" .= "value1"], object ["key2" .= "value2"]]
и я хочу объединить их как один объект aeson, подобный этому
object ["key1" .= "value1", "key2" .= "value2"]
Это вполне стандартно при работе с данными JSON на других языках (операция слияния), но я не вижу ничего подобного в библиотеке Aeson.
Я просто что-то упустил, и можно ли это сделать с помощью какой-то стандартной функции haskell? Я пытался использовать sequence
, но кажется, что JSON Value
не является монадой, поэтому я не могу этого сделать.
Мне не нужно иметь дело с глубоким слиянием или дублированием ключей, я просто хочу сгенерировать что-то вроде
{
"key1": value1,
"key2": value2
}
от
[{ "key1": value1 }, { "key2": value2 }]
Object
, то это простоHashMap
, поэтому вы можете использоватьHashMap.union
,mappend
,(<>)
и т. д. Но если у вас есть объекты с типамиValue
, как вы хотите их объединить? Например, у вас есть строка и число, какой должен быть результат? - person freestyle   schedule 07.06.2017unions
. Мне нужна карта со всеми ключами и их значениями, и если какой-то ключ дублируется, я с радостью позволю последнему перезаписать другие. По сути то же самое поведение, которое вы получаете на Ruby при выполненииhash1.merge(hash2)
- person Batou99   schedule 08.06.2017