Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 在Crystal lang中解析JSON对象数组_Arrays_Json_Crystal Lang - Fatal编程技术网

Arrays 在Crystal lang中解析JSON对象数组

Arrays 在Crystal lang中解析JSON对象数组,arrays,json,crystal-lang,Arrays,Json,Crystal Lang,假设我在Crystal lang中有一个简单的JSON映射对象,例如: 类项目 JSON.mapping( id:UInt32, 名称:String, ) 结束 我可以轻松地从JSON字符串解析单个对象,如下所示: foo=Item.from_json(%({“id”:1,“name”:“foo”})) 放入“OK:foo={foo}” #=>确定:foo=Item(@id=1,@name=“foo”) 但是,如何从JSON字符串解析项目数组呢?我尝试过几种方法,但不确定如何进行,例如: i

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

类项目
JSON.mapping(
id:UInt32,
名称:String,
)
结束
我可以轻松地从JSON字符串解析单个对象,如下所示:

foo=Item.from_json(%({“id”:1,“name”:“foo”}))
放入“OK:foo={foo}”
#=>确定:foo=Item(@id=1,@name=“foo”)
但是,如何从JSON字符串解析项目数组呢?我尝试过几种方法,但不确定如何进行,例如:

items_str=%([{“id”:1,“name”:“Foo”},{“id”:2,“name”:“Bar”}])
items:Array(Item)=JSON.parse(items\u str)
#=>foo.cr中的错误:15:类型必须是数组(项),而不是JSON::Any
当然,我也希望能够使用JSON拉式解析器实现这一点,所以我可能缺少一些映射技巧或类型提示。想法?

在这里找到了。因此,您可以使用
数组(Item)

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"