Skip to main content

src/oadr3/oadr3_utils_ffi.erl

-module(oadr3_utils_ffi).
-export([merge/1]).

-spec merge(JsonList :: [iodata()]) -> iodata().
merge(JsonList) ->
    Map =
    lists:foldl(
        fun(Json , Acc)->
            A = iolist_to_binary(Json),
            maps:merge(
                case json:decode(A) of
                    M when is_map(M) -> M;
                    _ -> #{}
                end,
                Acc)
        end,
        #{},
        JsonList
    ),
    json:encode(Map).