Как разобрать JSON в haskell - PullRequest
0 голосов
/ 17 мая 2019

Мне нужно проанализировать входящую JSON-форму из пользовательского интерфейса в структуру данных. структура данных представляет собой комбинацию других структур данных

Data Collection = Collection { t1 :: t1 , t2::t2}
newtype t1 = t1 {unt1 :: String}
data t2 = t2 {id :: Integer, rank :: String}

Данные, которые я получаю, имеют формат

{
  "t1": {
    "_unt1": "at1Value"
  },
  "t2": {
    "id" : 1
   "rank": "Officer"
 }
}

Мне нужно создать тип данных коллекции. Как мне сделать это самым простым способом?

Я попробовал библиотеку Aeson и сделал Collection и экземпляр JSON, а затем попробовал что-то вроде

decode data :: Maybe Collection

Но это не работает. Я тоже пытался заглянуть в библиотеку parsec, но я не уверен, будет ли это здесь полезно.

Я довольно новичок в Haskell, так что, может быть, я что-то здесь упускаю. Что было бы лучшим способом реализовать это, принимая во внимание фактическую структуру данных, которая могла бы быть намного более сложной, чем пример, который я привел, с несколькими уровнями глубины

1 Ответ

0 голосов
/ 17 мая 2019

импорт Text.JSON.Generic и декодирование JSON.

import           Text.JSON.Generic

................

decodeJSON data :: Collection
...