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
.
Смотрите также
- Документация пакета
aeson
: https://hackage.haskell.org/package/aeson - Реальные веб-API JSON для практики: https://jsonplaceholder.typicode.com/
- Спецификация JSON: https://www.json.org/json-en.html