2017-01-30 3 views
0

Я конвертирую кортеж, полный объектов 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?

ответ

0

К сожалению, не удалось воспроизвести код, который вы указали. Может быть, вы запутались в том, какой код вы в настоящее время компилировали и загружали по сравнению с тем, что у вас было в вашем редакторе. Но если вы все еще думаете, что что-то не так, попробуйте воссоздать ситуацию, которая не удалась, и опубликовать точный код, вызывающий ее.

+0

Перезагружено все, и оно работает. спасибо – quantumpotato