问题标签 [elixir-poison]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2300 浏览

elixir - 带有粗箭头与冒号的映射(毒药 - json 解码)

究竟有什么区别?为什么 Poison.decode!返回格式 #2(我需要 #1 与 Ecto.Changeset.change 一起使用)。

Json 响应取自 API,看起来像

0 投票
1 回答
596 浏览

elixir - 使用毒药和 unicode 对 json 进行编码

HTTPoison用来获取 elixir 指南网站,然后对其进行解析Floki以构建 HTML 2 Jupyter Notebook 转换器(使用 Markdown 进行描述)。我必须输入`反引号。\u0060用于代码突出显示,到目前为止有效。我有一些地方使用字符串插值"#{Floki.text(childs_nodes)}"和其他地方Enum.join ""来处理和转换从 HTML 到 Markdown。

转换后的结果根据 jupyter notebook 格式存储在地图中。当我打电话时Poison.encode notebook,我得到一个错误,因为代码点已经消失了。我尝试了不同的东西,但还不知道问题出在哪里。

任何提示我在处理文本时做错了什么?这是一个例外:

0 投票
1 回答
90 浏览

elixir - 主管派生进程,在失败时故障转移到其他进程

我有两个 genserver 实现,它们都通过发出 http 请求来执行查找,并且都返回相同的信息,它们使用不同的提供程序来执行此操作。

我想找出一种方法,我可以让第一个进程运行,并且在失败或验证失败时,这个进程将故障转移到使用不同提供程序的第二个 genserver。

基本上,我想要完成的是各种进程故障转移:尝试进程 A,如果 A 失败,则尝试进程 B。

您会建议在 Elixir 中执行此操作的最佳方法是什么?

0 投票
1 回答
290 浏览

elixir - 序列化与 Phoenix 的多对一关系

我正在寻找某种教程/示例,在 Phoenix 应用程序中使用 Poison lib 将结构序列化为 json。我找到了这样的例子:https ://robots.thoughtbot.com/building-a-phoenix-json-api但它没有使用 Poison 并且它没有用结构的嵌套映射覆盖结构。我也试过这个答案:https ://stackoverflow.com/a/34751835/4409736但我未能正确实施。我想序列化与我的控制器中的另一个结构具有 has_many 关系的结构映射。有没有人见过这样的事情或者可以帮助我处理这种情况?

0 投票
1 回答
558 浏览

elixir - 如何测试或序列化 Phoenix.Socket.Broadcast 有效负载中的结构?

如何在通道测试中自动将 ecto struct 序列化为 json 响应?正如我在文档 The event’s message must be a serializable map中看到的那样,我在答案教程中发现,当我Poison.Encoder在模型中使用时,应该对通过传输层(据我了解)传递的任何消息进行编码。

示例模型:

从频道功能之一广播:

最后尝试在测试中从广播接收有效载荷:

然后它上升不匹配错误与有效载荷中未序列化的结构(我试图仅匹配派生模型文件):

如何在测试中获取序列化的 json 消息,就好像它是客户端应用程序一样?

0 投票
0 回答
657 浏览

elixir - Phoenixframework Poison 编码器忽略派生

我有这个带有has_many指令的模型。我正在尝试从中获取所有值并将它们显示在 json 响应中:

控制器:

看法:

lib/poison_encoder.ex

如您所见,@derive明确指出只[:id, :identifier, :city, :state, :country]应编码但我似乎无法摆脱此错误:

cannot encode association :plans from Heroico.Datacenter to JSON because the association was not loaded. Please make sure you have preloaded the association or remove it from the data to be encoded

0 投票
1 回答
1098 浏览

elixir - 如何转换 POST 正文响应以获取元素?

我正在HTTPoisonElixir 中使用 Web 请求:

这是我得到的回应:

我是 Elixir 的新手,我的问题是我想resultsresponse.body

我不确定如何在 Elixir 中将此字符串转换为数组/散列或 stuple。我在 Enum 有,但它似乎不起作用

0 投票
1 回答
618 浏览

elixir - phoenix mix 版本中的重复模块

我正在尝试运行mix release创建生产凤凰服务器的任务。

我遇到了毒药问题,所以从这里添加了解决方法。但是现在当我运行发布任务时,我收到以下错误:

lib/myappname.ex我尝试根据elixir getting started的说明添加以下行。但它没有任何效果。

0 投票
1 回答
1842 浏览

elixir - 毒药无法编码错误信息

我使用 phoenix 作为 JSON API。我的一个模型如下所示,除非 unique_constraint 检查失败,否则它运行良好。发生这种情况时,我收到以下错误:

型号

控制器

查看

我想我可能需要以某种方式将错误消息添加到Poison.Encoder, only: []列表中,但我不确定该怎么做。

编辑

我应该澄清一下,如果我不指定自定义错误,我仍然会收到与通用错误消息相同的错误。

0 投票
1 回答
943 浏览

json - Elixir - 结构中的大写键

我正在尝试在 Elixir 中为 API 编写 CLI 客户端,以便我可以登录 API 系统,获取计算所需的数据,然后注销。我已经定义了一个 Packet.Login 结构,它应该是我在解析收到的 JSON 后最终得到的内部数据结构。

我正在使用 Poison 来解析 JSON。问题在于,由于 API 返回大写属性,我在打印或解析时无法匹配它们,因为 Poison 将返回带有这些大写键的映射。问题是我似乎不可能像这样使用别名。如果我尝试使用另一种语法,

它仍然不起作用,而是给了我一个错误。但是这一次 Packet.Login 没有实现 Access 行为。我可以理解那部分,但不是第一个问题。而且我试图让代码变得简单。

当试图编译上面我得到这个:

有没有办法让我以某种方式解决这个问题?我曾想过先解析地图并取消所有字段的大写,但我宁愿不这样做。

为什么我不能为结构设置大写键?似乎我可以,只要我不尝试使用它们。