当前位置: 动力学知识库 > 问答 > 编程问答 >

decode - How to encode tuple to JSON in elm

问题描述:

I have tuple of (String,Bool) that need to be encoded to JSON Array in elm.

This below link is useful for the primitive types and other list, array and object. But I need to encode tuple2.

Refer : http://package.elm-lang.org/packages/elm-lang/core/4.0.3/Json-Encode#Value

I tried different approach like encoding tuple with toString function.

It does not gives me JSON Array instead it produces String as below "(\"r"\,False)".

JSON.Decoder expecting the input paramater to decode as below snippet.

decodeString (tuple2 (,) float float) "[3,4]"

Refer : http://package.elm-lang.org/packages/elm-lang/core/4.0.3/Json-Decode

Q : When there is decode function available for tuple2, why encode function is missing it.

网友答案:

You can build a generalized tuple size 2 encoder like this:

import Json.Encode exposing (..)

tuple2Encoder : (a -> Value) -> (b -> Value) -> (a, b) -> Value
tuple2Encoder enc1 enc2 (val1, val2) =
  list [ enc1 val1, enc2 val2 ]

Then you can call it like this, passing the types of encoders you want to use for each slot:

tuple2Encoder string bool ("r", False)
分享给朋友:
您可能感兴趣的文章:
随机阅读: