簡體   English   中英

使用 Argonaut 在 PureScript 中解析 JSON

[英]Parse JSON in PureScript with Argonaut

我在 PureScript 中使用 argonaut 庫對 JSON 進行解碼和編碼。我無法編寫一個實現來解碼和編碼這樣的 json 字段:

“字段”:[3,“文本”]

這是一個具有不同數據類型的數組。 我如何在 argonaut 庫中實例化它?

如果你有固定數量的不同類型的值,這通常(在計算機科學和數學中)被稱為“元組”,當只有兩個時有一個特殊的名稱 - 一對。

JavaScript 沒有元組的概念,誠然,如果沒有 static 類型,它就毫無意義。 所以傳統上 JavaScript 中的元組被編碼為 arrays。

但是 PureScript 確實有這樣的概念! 在標准庫中它被稱為 - surprise! - Tuple (然后有不同數量元素的變體 - Tuple3Tuple4等)

Argonaut 遵循 JavaScript 約定:它將元組編碼為 arrays。因此,如果您將字段鍵入Tuple Int String ,它將起作用:

type MyObj = { field :: Tuple Int String }

x :: Either JsonDecodeError MyObj
x = parseJson "{ \"field\": [3, \"text\"] }" >>= decodeJson

main :: Effect Unit
main = 
  logShow x  -- prints Right { field: Tuple 3 "text" }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM