编辑代码

-module(adm).
-export([items/1, do_items/2, json_decode/1, main/1]).

%% @doc 物品格式化
-spec items(list()) -> list().
items(Items) ->
    do_items(Items, []).

do_items([], Items) ->
    Items;
do_items([[Bid, Bind, Num] | T], Items) when is_list(Bid), is_list(Bind), is_integer(Num) ->
    do_items(T, [{list_to_integer(Bid), list_to_integer(Bind), Num} | Items]);
do_items([[Bid, Bind, Num] | T], Items) when is_integer(Bid), is_integer(Bind), is_integer(Num) ->
    do_items(T, [{Bid, Bind, Num} | Items]);
do_items([{Bid, Bind, Num} | T], Items) ->
    do_items(T, [{Bid, Bind, Num} | Items]).

%% JSON解码函数
json_decode(Binary) ->
    case jiffy:decode(Binary) of
        [InnerList] when is_list(InnerList) ->
            InnerList;
        _ ->
            []
    end.

%% 测试函数
test() ->
    %% JSON格式的二进制字符串
    Binary = <<"[[1,1,1982]]">>,
    %% 解码JSON
    JsonList = json_decode(Binary),
    %% 调用items函数
    Result = items(JsonList),
    %% 打印结果
    io:format("Result: ~p~n", [Result]).

%% 确保测试函数在模块启动时被调用
main(_) ->
    test().