Problems encoding a nested map with poison

Can seem to encode this this json with Poison v4, using phoenix v1.4.1, getting error related to erlang.byte_size(…)

Any help would be appreciated.

** (Mix) Could not start application tradebot: Tradebot.Application.start(:normal, []) returned an error: shutdown: failed to start child: FTX.Client
    ** (EXIT) exited in: WebSockex.call(#PID<0.344.0>, {:text, {:ok, "{\"args\":{\"key\":\"fooooobaaarrrrbazzzzzzzz\",\"sign\":\"d10b5a67a1a941ae9463a60b285ae845cdeac1b11edc7da9977bef0228b96de9\",\"time\":\"1572290285343518000\"},\"op\":[108,111,103,105,110]}"}})
        ** (EXIT) an exception was raised:
            ** (ArgumentError) argument error
                :erlang.byte_size({:ok, "{\"args\":{\"key\":\"fooooobaaarrrrbazzzzzzz\",\"sign\":\"d10b5a67a1a941ae9463a60b285ae845cdeac1b11edc7da9977bef0228b96de9\",\"time\":\"1572290285343518000\"},\"op\":[108,111,103,105,110]}"})
                (websockex) lib/websockex/frame.ex:374: WebSockex.Frame.get_payload_length_bin/1
                (websockex) lib/websockex/frame.ex:324: WebSockex.Frame.encode_frame/1
                (websockex) lib/websockex.ex:897: WebSockex.sync_send/5
                (stdlib) proc_lib.erl:249: :proc_lib.init_p_do_apply/3

:wave:

Seems like you are encoding it just fine, but the result is a tagged tuple, {:ok, json}. You can either extract the json value from the tuple or use a “bang” version of the encoding command which returns the value directly.

3 Likes

Thanx - this worked.