小编Châ*_*ĩnh的帖子

Elixir - JasonHelpers - 如何将关键字列表发送到 json_map?

我有一个数据结构,我想将其转换为 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而重复代码,而是使用返回列表的函数。

json dictionary elixir

1
推荐指数
1
解决办法
1479
查看次数

标签 统计

dictionary ×1

elixir ×1

json ×1