[英]Purescript Reuse Argonaut JSON Decoding for Affjax Respondeable
[英]Parse JSON in PureScript with Argonaut
我在 PureScript 中使用 argonaut 庫對 JSON 進行解碼和編碼。我無法編寫一個實現來解碼和編碼這樣的 json 字段:
“字段”:[3,“文本”]
這是一個具有不同數據類型的數組。 我如何在 argonaut 庫中實例化它?
如果你有固定數量的不同類型的值,這通常(在計算機科學和數學中)被稱為“元組”,當只有兩個時有一個特殊的名稱 - 一對。
JavaScript 沒有元組的概念,誠然,如果沒有 static 類型,它就毫無意義。 所以傳統上 JavaScript 中的元組被編碼為 arrays。
但是 PureScript 確實有這樣的概念! 在標准庫中它被稱為 - surprise! - Tuple
(然后有不同數量元素的變體 - Tuple3
、 Tuple4
等)
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.