问题标签 [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.
elixir - 使用 Poison 编码 Ecto 模型:{:invalid, {nil, "votes"}}
我想编码两个模型,定义如下:
web/models/vote.ex
web/models/availability.ex
如果我Poison.encode
在脚本中使用并通过 iex 执行它,它可以正常工作:
但是,当我在控制器中执行完全相同的操作时,它会出现错误{:invalid, {nil, "posts"}}
。我真的无法理解有什么区别。以下是控制器的相关操作:
注意:我没有使用 Poison 2.1.0,而是 1.5.2 版,因为 Ecto 锁定了它。
elixir - 为什么凤凰控制器返回一个无法识别为JSON的json
我正在尝试用新的 phoenix 替换旧的 rails 应用程序。我正在发送 ajax 请求,我试图通过 jQuery 自动识别为 JSON。问题是rails返回这个内容:
而我的凤凰应用程序返回这个:
所以我需要运行JSON.parse
将此内容识别为 json 对象。我能做些什么来实现它自动解析?
我的凤凰代码:
elixir - 使用 Poison 将地图编码为 json 时排序键
出于阅读目的,我想在 json 文件中有一个特定的键顺序。
我知道 map 的键没有任何顺序,所以我们不应该依赖它,但是由于 Poison 无法编码 proplists,我不知道该怎么做。
我想要的结果是:
为了用 Poison 实现这一点,我应该使用哪种结构?
json - Elixir 将 JSON 列表解码为结构体
我正在使用 Elixir 从外部 API 检索 json 并将其存储在 Postgresql 数据库中。我正在使用 Poison 将 json 解码为 Elixir Ecto (2.0) 模式。它运行良好,除了一个方面:json 的一个元素是一个没有任何键的 List。我不知道如何将此元素映射到 Elixir 结构。
json:
此 json 采用结构(人)的形式,具有嵌入式结构(地址)和嵌入式列表(兴趣)。我想用 Ecto.Schemas 对这个结构进行建模,以便将 json 加载到其中。person 和 address 结构很简单:
我可以使用 Poison.decode 来加载这些结构:
但是,我如何建模和存储“兴趣”:来自 json?它只是一个没有任何键的简单单值列表。我可以把它变成一张地图,然后我可以用 Ecto.Schema 建模吗?有没有人遇到过这样的问题?
任何指导将不胜感激!
elixir - 处理 HTTPoison 调用时的 case 语句
我正在尝试对返回多个项目或单个项目的 API 调用使用相同的 HTTPoison 调用。多个项目的响应将它们放入“项目”属性中,而单个项目仅将项目信息作为 JSON 字符串返回。
这是我的代码:
在 process_response_body 中,如何让它检查 JSON 响应中的 items 属性,如果它不存在,则以不同的方式处理它?
decimal - 依赖项目中的重复协议实现
我在 Elixir 项目中合并协议实现时遇到问题。更具体地说,我使用Ecto
了一些名为Gold
(atm 无关紧要)的简单项目。问题是,它们(Ecto
和Gold
)都Poison
用于序列化Decimals
(并实现正确的协议)。
的实现Ecto
看起来有点像这样:
在开发过程中,有一条警告说模块重复:
但是当我尝试使用例如exrm
构建一个版本时,我会收到错误消息说我有duplicate_modules
我应该如何处理?这里的情况是我实际上使用了我自己的版本Gold
,所以我可以篡改它以尽快修复它。我知道我可以将其添加Ecto
为Gold
依赖项,但是仅实现一个这样的协议似乎有点过头了。是不是有某种宏来检查模块是否已经实现?
paypal - 如何在长生不老药中更新贝宝的计费计划
我正在尝试向 api 发送请求以更新 paypal Rest Api 的计费计划。
API 链接:https ://developer.paypal.com/docs/api/payments.billing-plans#plan_update
请求方法是:
但是响应给了我格式问题的错误。
我的请求有什么问题?
elixir - 如何在 Ecto Poison 编码中排除嵌套模型
我有一个简单的模型(短版):
我希望在尝试对模型进行编码时@derive
排除:company
关联,但似乎没有。使用 Guardian 序列化程序时会发生这种情况:
我实际上不确定会发生什么
def for_token(user = %User{}), do: { :ok, "User:#{user.id}" }
据我了解user = %User{}
,试图测试作为参数给出的对象是否是有效的User
变更集,对吗?
但我得到了这个错误:
无法将关联 :company 从 MyApp.User 编码为 JSON,因为未加载关联。请确保您已预加载关联或将其从要编码的数据中删除
我不想预加载它,因为它需要更多的依赖来编码,这也不起作用,我宁愿忽略它。
为什么only
参数@derive
不起作用,我该如何解决这个问题?
elixir - 使用 Poison 将映射编码为 JSON 以与 Slack 一起使用
我正在使用 Poison 将地图编码为 JSON,然后将其发送到 Slack API。这是毒药给我的:
当我将它放入 JSON lint 时,它说它是有效的 JSON,但 Slack 响应“无效负载”。
如果我将 JSON 更改为如下所示
然后它工作。有谁知道我哪里错了?我是否需要对编码的 JSON 进行额外处理,还是需要设置一些标头?
这是我的控制器
这是用于发送消息的库的一部分
还有我的 HTTPoison 处理
创建 JSON 的部分位于最后一个块中。
elixir - 毒药:当 json 值可能是对象或对象列表时如何解码为结构
我正在尝试使用 Poison 解码以下 json 字符串
执行 afetch(1) |> decode_response
是行不通的,尽管它是严格限制为 1 的参数。
我确实有以下错误
我的功能如下:
然后我认为参数等于1,函数应该是
我终于认为在我的 fetch 函数给出的字符串中计算元组并使用守卫来选择要使用的 decode_response 是一个好主意,但我不知道如何。
有人可以指出我正确的方向吗?
问候,
皮埃尔