问题标签 [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 回答
854 浏览

json - 长生不老药无法解码 JSON

我正在尝试下面的代码

有效负载来自消息队列的位置

有了这个我得到一个错误

但是,如果我将输入 json 更改为

Poison.decode()作品非常好。现在的问题是我不想JSON因为很多原因而改变我的输入。我错过了什么?

编辑:代码不是在解码失败,而是在下一行Logger.info("data is #{data}")。由于decode函数的输出不是String我宁愿使用 IO.inspect 如下。接受 Adams 对解码功能的信心的回答。

0 投票
2 回答
245 浏览

json - 从 JSON 数组中获取数据

我有一个 JSON 数组:

我正在尝试获取变量email中所有项目的字段。response例子:

0 投票
0 回答
232 浏览

elixir - 第二个 HTTPoison.get 请求返回 404

我正在测试向各种 URL 发出多个请求,进行一些网络抓取 - 在第一个请求之后,第二个请求通常会失败。我不知道为什么:

我向网站发出了两个简单的请求,而第二个请求正在返回与 Google 相关的响应,并且失败了。如果我启动服务器并点击雅虎,那么请求会按预期返回。如果我的第一个请求命中 Wikipedia,而后续请求转到其他地方,也会发生同样的行为。

有人可以解释发生了什么吗?

谢谢。

deps: {:httpoison, "~> 1.5"}

首先我启动服务器(根据文档)

接下来,我请求获取 Google 的主页:

最后,我请求获取雅虎主页

0 投票
0 回答
158 浏览

elixir - Poison.decode/2 在生产中未定义

我在 elixir 1.9 中的函数解码来自外部 api 的 json 响应,如下所示:

它在开发中运行良好,但应用程序崩溃并显示以下错误消息:

这是我的 mix.ex,其中包含了依赖项:

这就是我编译生产版本的方式:

mix.exs 应用程序/0

您的帮助将不胜感激。

0 投票
1 回答
38 浏览

json - Poison 无法解析具有 0 前缀的 json 字符串

当我解析具有0前缀的有效 json 字符串时,毒药返回无效。例如,

Poison.Parser.parse("{\"mynumber\":09315}")返回{:error, {:invalid, "9", 13}},但如果我删除 0 前缀 Poison.Parser.parse("{\"mynumber\":9315}")返回{:ok, %{"mynumber" => 9315}}

我想知道为什么"{\"mynumber\":09315}"无效。有什么解决方法吗?

0 投票
1 回答
731 浏览

json - Elixir - 将 http 响应 json 转换为 ecto.schema 对象

我是长生不老药的新手。我有一个 Ecto Schema

和父模式

并拥有一个http://localhost:8080/getScoreData提供数据的 HTTP REST API

和代码

这以某种方式起作用并且不会给出错误,但结果是一些struct而不是真的OverallScore ecto schema object

0 投票
0 回答
240 浏览

json - 编码为 JSON 时如何在 Elixir 中转义单个反斜杠?

我有这个请求的主体,在 Elixir 中表示如下:

我使用 Poison.encode!将其转换为 JSON,发送的内容是这样的:

如果我尝试用双反斜杠转义它:

这是在请求中编码和发送的内容:

我还尝试将字符串转换为 a charlist,它只是对代码点进行编码,而不是对实际字符进行编码。

有什么方法可以只编码一个反斜杠,或者更笼统地说:在使用 Poison 或 Elixir 进行编码时如何传递字符串文字?

0 投票
2 回答
219 浏览

api - Elixir:在大型结构化数据中提取元素

我用 HTTPoison 发出了一个 get 请求,但现在我正在尝试解析 JSON 文件。为此,我正在使用 Poison 库。但是我在从 JSON 对象中获取元素时遇到了一些问题。

这是我的代码:

我的输出:

就像您在上面看到的(评论中有四行),我正在尝试提取“警报器”元素,但它失败了......我是否偏离了目标?

0 投票
2 回答
240 浏览

elixir - 如何在 Phoenix 中定义一个使用 Poison 库的模块

我是 Elixir 和 Phoenix 的新手,所以这个问题可能相当简单。我的 Phoenix 应用程序是一个 API 客户端,我正在尝试创建一个结构来对我将从 REST 端点接收的数据进行建模。我基本上按照Poison GitHub 页面上的小例子来创建我的模块:

该模块位于lib/elixir_server/(这甚至是此类文件的最佳位置吗?)。

我的问题是当我尝试编译文件时出现此错误:

当我尝试运行时,iex -S mix我收到类似的错误:

Poison 包含在 mix.exs 的依赖项中。如何解决此错误?

0 投票
2 回答
61 浏览

elixir - 在 Mix shell echo 命令中转义 JSON

我有一个类似的代码。我希望它在属性上用引号回显一个有效的 JSON,以便它可以通过管道传输到另一个命令。但是,在呼应的同时,它正在扯掉所有的报价。

预期的

实际的