wrapper type to store data as a String in a dynamodb column
Structure of DynamoDB response
import Json.Decode
toBase64 "aGVsbG8="
|> Result.andThen (\v ->
Json.Decode.decodeValue decodeB (encodeB v)
|> Result.mapError Json.Decode.errorToString
)
--> toBase64 "aGVsbG8="import Json.Decode
Json.Decode.decodeValue decodeBOOL (encodeBOOL True)
--> Ok Trueimport Json.Decode
toBase64 "aGVsbG8="
|> Result.andThen (\v ->
Json.Decode.decodeValue decodeBS (encodeBS [v])
|> Result.mapError Json.Decode.errorToString
)
--> Result.map (\v -> [v]) (toBase64 "aGVsbG8=")import Json.Decode
toBase64 "aGVsbG8="
|> Result.andThen (\v ->
Json.Decode.decodeValue (decodeL decodeB) (encodeL encodeB [v])
|> Result.mapError Json.Decode.errorToString
)
--> Result.map (\v -> [v]) (toBase64 "aGVsbG8=")
Json.Decode.decodeValue (decodeL decodeN) (encodeL encodeN [3.14, 42])
--> Ok [3.14, 42]import Json.Decode
import Dict
Json.Decode.decodeValue (decodeM decodeN) (encodeM encodeN (Dict.fromList [("hello", 3.14)]))
--> Ok (Dict.fromList [("hello", 3.14)])import Json.Decode
Json.Decode.decodeValue decodeN (encodeN 3.14)
--> Ok 3.14import Json.Decode
import Set
Json.Decode.decodeValue decodeNS (encodeNS (Set.fromList [1, 3, 5, 7]))
--> Ok (Set.fromList [1, 3, 5, 7])import Json.Decode
Json.Decode.decodeValue decodeNULL (encodeNULL False)
--> Ok Falseimport Json.Decode
Json.Decode.decodeValue decodeS (encodeS "Hello")
--> Ok "Hello"import Json.Decode
import Set
Json.Decode.decodeValue decodeSS (encodeSS (Set.fromList ["hello", "world"]))
--> Ok (Set.fromList ["hello", "world"])import Json.Encode
toBase64 "aGVsbG8="
|> Result.map (\v -> Json.Encode.encode 0 (encodeB v))
--> Ok """{"B":"aGVsbG8="}"""import Json.Encode
Json.Encode.encode 0 (encodeBOOL False)
--> """{"BOOL":false}"""import Json.Encode
toBase64 "aGVsbG8="
|> Result.map (\v -> Json.Encode.encode 0 (encodeBS ([v])))
--> Ok """{"BS":["aGVsbG8="]}"""import Json.Encode
Json.Encode.encode 0 (encodeL encodeN [1,3,5,7])
--> """{"L":[{"N":"1"},{"N":"3"},{"N":"5"},{"N":"7"}]}"""import Json.Encode
import Dict
Json.Encode.encode 0 (encodeM encodeN (Dict.fromList [("width", 800), ("height", 600)]))
--> """{"M":{"height":{"N":"600"},"width":{"N":"800"}}}"""import Json.Encode
Json.Encode.encode 0 (encodeN 3.14)
--> """{"N":"3.14"}"""import Json.Encode
import Set
Json.Encode.encode 0 (encodeNS (Set.fromList [1,3,5,7]))
--> """{"NS":["1","3","5","7"]}"""import Json.Encode
Json.Encode.encode 0 (encodeNULL True)
--> """{"NULL":true}"""import Json.Encode
Json.Encode.encode 0 (encodeS "Hello")
--> """{"S":"Hello"}"""import Json.Encode
import Set
Json.Encode.encode 0 (encodeSS (Set.fromList ["hello", "world"]))
--> """{"SS":["hello","world"]}"""Obtain the regular String content. Decode it yourself, e.g.
https://package.elm-lang.org/packages/waratuman/elm-coder/3.0.1/Base64#decode
A wrapper to differentiate from regular String