假设我有一个简单的JSON映射对象,使用Crystal语言实现,例如:
当然,我也希望能够使用JSON pull解析器来完成这个任务,所以可能需要一些映射技巧或类型提示。有什么想法吗?
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_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 pull解析器来完成这个任务,所以可能需要一些映射技巧或类型提示。有什么想法吗?