Tôi có một phản ứng JSON mà là một mảng của Hash:Làm cách nào để chỉ định các loại dữ liệu cho phân tích cú pháp JSON?
[{"project" => {"id" => 1, "name" => "Internal"},
{"project" => {"id" => 2, "name" => "External"}}]
Mã của tôi trông như thế này:
client = HTTP::Client.new(url, ssl: true)
response = client.get("/projects", ssl: true)
projects = JSON.parse(response.body) as Array
này mang lại cho tôi một mảng nhưng có vẻ như tôi cần phải định kiểu các yếu tố để thực sự sử dụng chúng nếu không tôi sẽ nhận được undefined method '[]' for Nil (compile-time type is (Nil | String | Int64 | Float64 | Bool | Hash(String, JSON::Type) | Array(JSON::Type)))
.
Tôi đã thử as Array(Hash)
nhưng điều này mang lại cho tôi can't use Hash(K, V) as generic type argument yet, use a more specific type
.
Làm cách nào để chỉ định loại?
Bạn đánh bại tôi trong 1 phút! – asterite
xuất hiện cú pháp #as đã thay đổi? https://play.crystal-lang.org/#/r/1uhw hoặc bạn có thể sử dụng to_i và to_s FWIW. – rogerdpack
Đúng, tôi đã cập nhật câu trả lời. –