我有一个数据结构,我想将其转换为 json 并保留键顺序。
例如:
%{ x: 1, a: 5}
应转换为"{\"x\": 1, \"a\": 5}"
毒药做到这一点没有任何问题。但是当我升级到 Jason 时,它变成了"{\"a\": 5, \"x\": 1}"
.
所以我使用 JasonHelpers json_map 来保留这样的顺序:
Jason.Helpers.json_map([x: 1, a: 5])
Run Code Online (Sandbox Code Playgroud)
它创建一个具有正确顺序的片段。
但是,当我使用变量来执行此操作时:
list = [x: 1, a: 5]
Jason.Helpers.json_map(list)
Run Code Online (Sandbox Code Playgroud)
我有一个错误:
** (Protocol.UndefinedError) protocol Enumerable not implemented for {:list, [line: 15], nil} of type Tuple.
....
Run Code Online (Sandbox Code Playgroud)
问题:如何将预先计算的列表传递到Jason.Helpers.json_map
?
计算很复杂,所以我不想仅仅为了使用json_map而重复代码,而是使用返回列表的函数。