Hãy bắt đầu với một cảm ơn trước :)Mapping thứ bậc JSON để nguyên cảo-KnockoutJS gõ Object
OK, Vì vậy, tôi đang cố gắng để tải/bản đồ thứ bậc nguyên cảo/KnockoutJS lớp gõ từ phù hợp với dữ liệu JSON sử dụng loại trực tiếp. ánh xạ plugin, hệ thống phân cấp có thể ở mức độ thứ N.
Tôi biết tôi có thể thực hiện các thao tác sau để ánh xạ/tải lớp cấp cao nhất từ dữ liệu JSON.
var qry = ko.mapping.fromJS(jsData, {}, new Query());
Tuy nhiên, tôi không thể hiểu được cách ánh xạ/tải dữ liệu JSON thứ bậc, phức tạp vào một tập hợp các lớp TypeScript/KnockoutJS và xây dựng mối quan hệ cha/con.
Tôi đã đọc vô số bản nghệ thuật, nhưng tất cả đều thiếu hụt khi nói đến các mối quan hệ phân cấp vượt ra ngoài các ví dụ đơn giản về cha/con và tôi không thể tìm thấy gì bằng plugin knockout.mapping.
Dưới đây là các định nghĩa cắt giảm của tôi về các lớp TypeScript mà tôi muốn ánh xạ/tải. Tôi là một nhà phát triển C++/C#, do đó, JavaScript về bản chất này rất mới đối với tôi.
nguyên cảo Objects
Các JSON sẽ giống như thế này:
{
"ID": 2,
"Name": "Northwind 2",
"RootTargetID": 2,
"RootTarget": {
"ID": 2,
"Name": "Customers",
"ParentID": null,
"FilterID": 2,
"Queries": [],
"Children": [],
"Parent": null,
"Selects": [
{
"ID": 3,
"Name": "CompanyName",
"Aggregation": "None",
"TargetID": 2,
"Target": null
},
{
"ID": 4,
"Name": "ContactName",
"Aggregation": "None",
"TargetID": 2,
"Target": null
}
],
"Filter": {
"FilterClauseID": 2,
"Type": "AND",
"Left": null,
"Right": null,
"ParentID": null,
"QueryTargets": [],
"Parent": null,
"Children": [
{
"FilterClauseID": 3,
"Type": "NE",
"Left": "Country",
"Right": "Germany",
"ParentID": 2,
"QueryTargets": [],
"Parent": null,
"Children": []
},
{
"FilterClauseID": 4,
"Type": "NE",
"Left": "Country",
"Right": "Mexico",
"ParentID": 2,
"QueryTargets": [],
"Parent": null,
"Children": []
}
]
}
}
}
giải pháp được thêm vào bên dưới – DIGGIDY