Jason 解码两次以正确匹配模式

Posted

技术标签:

【中文标题】Jason 解码两次以正确匹配模式【英文标题】:Jason decode twice to pattern match correctly 【发布时间】:2021-08-28 20:12:11 【问题描述】:

我对灵药真的很陌生,所以请原谅我的无知。我在body(来自公共 api)中有一个 json 响应,我需要解码两次才能真正获得可以进行模式匹配的地图。我不明白为什么会发生这种情况以及如何避免它?谢谢。

body = "\"\\\"access_token\\\":\\\"r5f3w73pjjjoembe4azhp892475wah\\\",\\\"expires_in\\\":5102694,\\\"token_type\\\":\\\"bearer\\\"\\n\""
result = body |> Jason.decode! |> Jason.decode!
%"access_token" => access_token = result

编辑:在 Postman/Node fetch 中的响应很好,当它来自 elixir 中的 Tesla 客户端时,它只是像这样逃脱了。

【问题讨论】:

【参考方案1】:

正如我所想,我的无知是罪魁祸首。我不知道inspect() 实际上是Kernel.inspect()(这实际上是有道理的),并且该函数输出修改后的输入表示以进行调试。我将它与返回未更改项目的IO.inspect() 混淆了。所以我会留下这个问题,以防有人把它们弄混了。

【讨论】:

以上是关于Jason 解码两次以正确匹配模式的主要内容,如果未能解决你的问题,请参考以下文章

适配器模式

正则 : 模式

期望不正确匹配模式

Erlang中模式匹配字符串的正确方法

如何找到输入列表的匹配模式,然后使用 python 用正确的模式转换替换找到的模式

PERL 中的模式匹配以句点“.”结尾