【问题标题】:Why is this list showing as empty, but tuples will parse fine?为什么这个列表显示为空,但元组解析得很好?
【发布时间】:2017-01-31 17:51:48
【问题描述】:

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

tileJSON 函数被一个 2 元素元组调用。我期望在地图中为每个 tableCache 元素看到一个包含瓦片的行列表。相反,我看到了这个:

#{"availableTablePids" => ["<0.477.0>"],
  "hall" => [],
  "tableCache" => [],
  "tablePids" => ["<0.477.0>"]}

设置 tileJSON 以返回这样的元组:

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

我得到了这些数据:

#{"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).

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

【问题讨论】:

    标签: erlang


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-09-24
      • 1970-01-01
      • 1970-01-01
      • 2018-09-10
      • 2021-08-11
      • 1970-01-01
      • 2023-01-07
      • 1970-01-01
      • 2021-05-02
      相关资源
      最近更新 更多