gpt4 book ai didi

json - Elixir - 嵌套 JSON 解析为结构

转载 作者:行者123 更新时间:2023-12-03 15:02:40 26 4
gpt4 key购买 nike

免责声明:我已经检查了问题 here它没有回答我的问题。

我试图想出一种方法来解析 JSON 的嵌套结构。例子:

{"name": "blah blah", "address": {"street": "smthing"}}

我想达到这个结果:
%User{name: "blah blah", address: %Address{street: "smthing"}}

因为这样插入验证会更容易(例如使用 Vex)。

我知道 Poison 支持“as struct”选项,但它不提供嵌套。以上将被解析:
%User{name: "blah blah", address: %{"street" => "smthing"}}. 

我知道我可以为模块 User 编写解码器实现但我想这不是预期的用例,也不是通用的。

当想知道一个实现时,我找不到一种方法来判断一个原子是否是一个模块......也许我必须选择 :code.is_loaded(module_name) ?

无论如何,在尝试实现之前,我想知道是否有我没有看到的东西。

最佳答案

我相信毒药现在可以实现上述目标:

defmodule User do
@derive [Poison.Encoder]
defstruct [:address]
end

defmodule Address do
@derive [Poison.Encoder]
defstruct [:street]
end

Poison.decode(response, as: %User{address: %Address{}})

关于json - Elixir - 嵌套 JSON 解析为结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30855638/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com