gpt4 book ai didi

arrays - 在 Crystal lang 中解析 JSON 对象数组

转载 作者:行者123 更新时间:2023-12-04 23:38:41 30 4
gpt4 key购买 nike

假设我在 Crystal lang 中有一个简单的 JSON 映射对象,例如:

class Item
JSON.mapping(
id: UInt32,
name: String,
)
end

我可以像这样轻松地从 JSON 字符串解析单个对象:

foo = Item.from_json(%({"id":1,"name":"Foo"}))
puts "OK: foo=#{foo}"
# => OK: foo=Item(@id=1, @name="Foo")

但是我将如何从 JSON 字符串解析一组 Items 呢?我尝试了几种方法,但不确定如何进行,例如:

items_str = %([{"id":1,"name":"Foo"},{"id":2,"name":"Bar"}])
items : Array(Item) = JSON.parse(items_str)
# => Error in foo.cr:15: type must be Array(Item), not JSON::Any

当然,我也希望能够使用 JSON 拉式解析器来做到这一点,所以大概有一些我遗漏的映射技巧或类型提示。想法?

最佳答案

在此找到它 spec .因此,您可以使用 Array(Item).from_json :

items = Array(Item).from_json %([{"id":1,"name":"Foo"},{"id":2,"name":"Bar"}])

items.first.id #=> 1
items.first.name #=> "Foo"
items.last.id #=> 2
items.last.name #=> "Bar"

关于arrays - 在 Crystal lang 中解析 JSON 对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46246624/

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