Erlang 为什么这个列表显示为空,但元组可以很好地解析?

Erlang 为什么这个列表显示为空,但元组可以很好地解析?,erlang,Erlang,我正在将一个充满erlang对象的元组转换为映射,我计划稍后将其转换为JSON 正在使用2元素元组调用tileJSON函数。我希望在每个tableCache元素的映射中看到一个包含平铺的行列表。相反,我看到的是: #{"availableTablePids" => ["<0.477.0>"], "hall" => [], "tableCache" => [], "tablePids" => ["<0.477.0>"]} 我得到以下数据

我正在将一个充满erlang对象的元组转换为映射,我计划稍后将其转换为JSON

正在使用2元素元组调用tileJSON函数。我希望在每个tableCache元素的映射中看到一个包含平铺的行列表。相反,我看到的是:

#{"availableTablePids" => ["<0.477.0>"],
  "hall" => [],
  "tableCache" => [],
  "tablePids" => ["<0.477.0>"]}
我得到以下数据:

#{"availableTablePids" => ["<0.477.0>"],
  "hall" => [],
  "tableCache" => [#{"actions" => #{"current" => "x","o" => #{"next" => 0,"now" => 0},"x" => #{"next" => 0,"now" => 2}},
     "board" => [[{"spawn","x"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"ridge","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"empty","null"},
       {"ridge","null"},
       {"empty","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"ridge","null"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"spawn","o"}]],
     "clock" => #{"current" => "x","o" => 3000,"status" => "unstarted","x" => 3000}}],
  "tablePids" => ["<0.477.0>"]}

atomJSON(Atom) -> atom_to_list(Atom).

tileJSON({Status, Sitter}) ->
  [atomJSON(Status), atomJSON(Sitter)].

rowJSON(Row) ->
  lists:map(fun(Tile) -> tileJSON(Tile) end, Row).

boardJSON(Board) ->
  lists:map(fun(Row) -> rowJSON(Row) end, Board).

tableCacheJSON(Cache) ->
  lists:map(fun(#{actions := Actions, clock := Clock, board := Board}) -> 
    #{"actions" => actionsJSON(Actions),
      "clock" => clockJSON(Clock),
      "board" => boardJSON(Board)
      }
   end, Cache).
#{“availableTablePids”=>[“”],
“大厅”=>[],
“tableCache”=>,
“board”=>[[{“spawn”,“x”},
{“空”、“空”},
{“空”、“空”},
{“空”、“空”},
{“空”、“空”}],
[{“空”、“空”},
{“空”、“空”},
{“空”、“空”},
{“ridge”,“null”},
{“空”、“空”}],
[{“空”、“空”},
{“空”、“空”},
{“ridge”,“null”},
{“空”、“空”},
{“空”、“空”}],
[{“空”、“空”},
{“ridge”,“null”},
{“空”、“空”},
{“空”、“空”},
{“空”、“空”}],
[{“空”、“空”},
{“空”、“空”},
{“空”、“空”},
{“空”、“空”},
{“spawn”,“o”}]],
“时钟”=>{“当前”=>“x”,“o”=>3000,“状态”=>“未启动”,“x”=>3000}],
“tablePids”=>[“”]}
atomJSON(原子)->原子到列表(原子)。
tileJSON({Status,Sitter})->
[阿托姆森(地位),阿托姆森(坐席)]。
rowJSON(行)->
列表:地图(乐趣(平铺)->平铺(平铺)结束,行)。
董事会(董事会)->
列表:映射(乐趣(行)->rowJSON(行)结束,板)。
tableCacheJSON(缓存)->
列表:地图(乐趣(#{actions:=actions,clock:=clock,board:=board})->
#{“动作”=>actionsJSON(动作),
“时钟”=>clockJSON(时钟),
“板”=>boardJSON(板)
}
结束,缓存)。

程序没有崩溃。我原来的tileJSON函数有什么问题?

很抱歉,无法使用您显示的代码进行复制。与编辑器中的代码相比,您可能对当前编译和加载的代码感到困惑。但是,如果您仍然认为有问题,请尝试重新创建失败的情况,并发布导致错误的确切代码

#{"availableTablePids" => ["<0.477.0>"],
  "hall" => [],
  "tableCache" => [#{"actions" => #{"current" => "x","o" => #{"next" => 0,"now" => 0},"x" => #{"next" => 0,"now" => 2}},
     "board" => [[{"spawn","x"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"ridge","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"empty","null"},
       {"ridge","null"},
       {"empty","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"ridge","null"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"}],
      [{"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"empty","null"},
       {"spawn","o"}]],
     "clock" => #{"current" => "x","o" => 3000,"status" => "unstarted","x" => 3000}}],
  "tablePids" => ["<0.477.0>"]}

atomJSON(Atom) -> atom_to_list(Atom).

tileJSON({Status, Sitter}) ->
  [atomJSON(Status), atomJSON(Sitter)].

rowJSON(Row) ->
  lists:map(fun(Tile) -> tileJSON(Tile) end, Row).

boardJSON(Board) ->
  lists:map(fun(Row) -> rowJSON(Row) end, Board).

tableCacheJSON(Cache) ->
  lists:map(fun(#{actions := Actions, clock := Clock, board := Board}) -> 
    #{"actions" => actionsJSON(Actions),
      "clock" => clockJSON(Clock),
      "board" => boardJSON(Board)
      }
   end, Cache).