Haskell:
Работа с JSON

Как:

В Haskell мы работаем с JSON с использованием библиотеки aeson. Для начала импортируйте ее и определите тип, который соответствует ожидаемой структуре JSON.

{-# LANGUAGE DeriveGeneric #-}

import Data.Aeson
import GHC.Generics

-- Предположим, у нас есть объект JSON с "name" и "age"

data Person = Person 
  { name :: String
  , age  :: Int
  } deriving (Generic, Show)

instance FromJSON Person
instance ToJSON Person

-- Разбор строки JSON
main :: IO ()
main = do
  let jsonString = "{\"name\":\"John\", \"age\":30}"
  let maybePerson = decode jsonString :: Maybe Person
  case maybePerson of
    Nothing -> putStrLn "Ошибка при разборе JSON."
    Just person -> print person

Вывод:

Person {name = "John", age = 30}

Погружение

  • История: Дизайн JSON был вдохновлен подмножеством синтаксиса JavaScript, и он впервые получил популярность как простая альтернатива XML.
  • Альтернативы: Хотя JSON является королем для веб-API, в зависимости от контекста и требований могут быть выбраны альтернативы, такие как XML, YAML или даже Protocol Buffers.
  • Детали реализации: aeson использует систему типов Haskell для соответствия структур JSON типам Haskell. Разбор выполняется через классы типов, такие как FromJSON, и кодирование через ToJSON.

Смотрите также