【发布时间】:2016-03-02 20:38:26
【问题描述】:
如果我有一个 JSON 对象,其中键的值是一个整数数组,并且数组的 每个整数恰好与对应的代码点printable ASCII character,有什么方法可以让 Elixir 将数组解释为简单的整数列表而不是字符列表?
我使用了三种不同的 Elixir JSON 解析器来尝试获取返回的整数列表,但它们都返回列表的 char 表示形式:
iex> JSON.decode!(~s({ "foo": [35, 35] }))
%{"foo" => '##'}
iex> JSX.decode!(~s({ "foo": [35, 35] }))
%{"foo" => '##'}
iex> Poison.decode!(~s({ "foo": [35, 35] }))
%{"foo" => '##'}
我想要的只是%{"foo" => [35, 35]}。这是可能的,还是我错过了什么?如果不可能,我应该如何将此值从 JSON 解码为 Elixir,然后如果需要将 JSON 发送到其他外部系统,我将如何将其编码回 JSON 数组?
编辑
感谢michalmuskala 的answer,我认为有些东西点击了,然后通过进一步调查,我意识到在解析 JSON 整数数组进出 Elixir 时确实没有什么可担心的:
iex> json = Poison.decode!(~s({ "foo": [35, 35] }))
%{"foo" => '##'}
iex> Poison.encode!(json)
"{\"foo\":[35,35]}"
【问题讨论】: