Tôi vừa mới bắt đầu làm việc với Elm để tạo một số mẫu front-end bằng cách sử dụng API Rest tôi đang làm việc. Nói chung, API trả về cấu trúc dữ liệu "hợp lý" có thể được giải mã bởi vì các khóa và giá trị kiểu nổi tiếng, nhưng một số loại tài nguyên trả về mục nhập data
chỉ có json thô không có cấu trúc được xác định trước.Elm giải mã cấu trúc json chưa biết
Mọi thứ tôi đã đọc cho đến nay dường như giả định bạn biết cấu trúc của dữ liệu bạn đang giải mã, trong khi ở các js đơn giản, nó tương đối dễ dàng lặp lại các khóa và phản ánh trên các loại. được xử lý trong thời gian chạy. Tôi không nhìn thấy một con đường rõ ràng đối với việc xử lý loại dữ liệu này trong Elm.
Ví dụ,
{
"name":"foo",
"data": {
"bar": [{"baz":123}, "quux"]
},
...
}
Tôi muốn biết nếu nó hiện có thể phân tích giá trị của các mục nhập data
với một cái gì đó giống như
function go(obj)
for key in keys(foo)
if foo[key] is an object
go(foo[k])
else if foo[key] is an array
map(go, foo[k])
...
Cụ thể:
- Hiện tại, có thể xử lý dữ liệu json không xác định, lồng nhau và không đồng nhất trong Elm?
- Nếu có, bạn có thể cho tôi khái niệm chính hoặc trực giác mức độ cao về cách (các) tác giả dự định dữ liệu như thế này được giải mã không?
Tôi sợ nó không phải là “Elm- như "để nhận được một cấu trúc bạn không biết. Trong Elm, bạn luôn mong đợi một đối tượng chứa các thuộc tính nhất định, và Elm thậm chí thực hiện kiểm tra trong thời gian chạy cho dù tất cả các thuộc tính mà bạn mong đợi tồn tại trong đối tượng đó. –