#purescript
Вопрос:
Я знаю, есть ли у меня JSON с определенными известными полями, такими как «дата» и «название».
{
"date": "any string",
"title": "any string"
}
Затем я могу расшифровать его, определив
myDecodeFunc :: Json -> Either JsonDecodeError ({ date :: String, title :: String })
myDecodeFunc = decodeJson
Однако я, похоже, не могу найти, как декодировать один и тот же JSON с произвольными полями, подобными этому.
{
"any field": "any string",
"any field": "any string"
}
Я новичок в Purescript, поэтому буду признателен за любые указания. Спасибо.
Ответ №1:
Причудливый термин для обозначения «записи», когда вы заранее не знаете всех возможных полей,-это словарь.
И чтобы проанализировать JSON в качестве словаря, используйте тип словаря, например, Foreign.Object
например, у которого просто есть удобный экземпляр FromJSON
:
import Foreign.Object (Object)
myDecodeFunc :: Json -> Either JsonDecodeError (Object String)
myDecodeFunc = decodeJson