Javascript JSON.NET:使用LINQ从JSON反序列化
我有以下建议:Javascript JSON.NET:使用LINQ从JSON反序列化,javascript,c#,json,json.net,Javascript,C#,Json,Json.net,我有以下建议: {[ "{\"Id\":3,\"ParentName\":\"TicketController\",\"ChildName\":null,\"Body\":\"Ticket\",\"ParentId\":null,\"HasChildren\":true,\"imageUrl\":null}", "{\"Id\":0,\"ParentName\":\"TicketController\",\"ChildName\":\"MainPage\",\"Body\":\"Home
{[
"{\"Id\":3,\"ParentName\":\"TicketController\",\"ChildName\":null,\"Body\":\"Ticket\",\"ParentId\":null,\"HasChildren\":true,\"imageUrl\":null}",
"{\"Id\":0,\"ParentName\":\"TicketController\",\"ChildName\":\"MainPage\",\"Body\":\"HomePage\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":1,\"ParentName\":\"TicketController\",\"ChildName\":\"TicketList\",\"Body\":\"Requests\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":2,\"ParentName\":\"TicketController\",\"ChildName\":\"Responses\",\"Body\":\"Responses\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":3,\"ParentName\":\"TicketController\",\"ChildName\":\"UpdateResponse\",\"Body\":\"Edit\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":4,\"ParentName\":\"TicketController\",\"ChildName\":\"UpdateResponse\",\"Body\":\"Update\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":5,\"ParentName\":\"TicketController\",\"ChildName\":\"RequestDetail\",\"Body\":\"Detail\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":6,\"ParentName\":\"TicketController\",\"ChildName\":\"RequestDetail\",\"Body\":\"Save\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}",
"{\"Id\":7,\"ParentName\":\"TicketController\",\"ChildName\":\"DeleteRequest\",\"Body\":\"Delete\",\"ParentId\":3,\"HasChildren\":false,\"imageUrl\":null}"
]}
用户通过在客户端选择一些复选框(KendoUI树视图witch复选框)生成结果:
var checkedNodes = [];
function checkedNodeIds(nodes) {
for (var i = 0; i < nodes.length; i++) {
if (nodes[i].checked) {
var page = {
Id: nodes[i].Id,
ParentName: nodes[i].ParentName,
ChildName: nodes[i].ChildName,
Body: nodes[i].Body,
ParentId: nodes[i].ParentId,
HasChildren: nodes[i].HasChildren,
imageUrl: nodes[i].imageUrl
};
checkedNodes.push(JSON.stringify(page));
console.log(nodes[i]);
}
if (nodes[i].hasChildren) {
checkedNodeIds(nodes[i].children.view(), checkedNodes);
}
}
}
$('#btnSave').click(function() {
var tv = $("#my-treeview").data("kendoTreeView");
checkedNodeIds(tv.dataSource.view());
var data = {};
data.checks = JSON.stringify(checkedNodes);
$.ajax({
url: '@Url.Action("SaveTreeViewData", "Main", new {area = ""})',
type: 'POST',
data: data,
dataType: 'json',
success: function(result) {
alert("Success");
},
error: function(result) {
alert("Error");
}
});
});
有什么想法吗?数组中的每个元素都只是另一个字符串,因此您还需要解析其中的每个元素。例如:
IList<Page> pages = jsonArray
.Select(text => JObject.Parse(text))
.Select(p => new Page { ... })
.ToList();
数组中的每个元素都只是另一个字符串,因此您还需要解析其中的每个元素。例如:
IList<Page> pages = jsonArray
.Select(text => JObject.Parse(text))
.Select(p => new Page { ... })
.ToList();
数组中的每个元素都只是另一个字符串,因此您还需要解析其中的每个元素。例如:
IList<Page> pages = jsonArray
.Select(text => JObject.Parse(text))
.Select(p => new Page { ... })
.ToList();
数组中的每个元素都只是另一个字符串,因此您还需要解析其中的每个元素。例如:
IList<Page> pages = jsonArray
.Select(text => JObject.Parse(text))
.Select(p => new Page { ... })
.ToList();
ParentId=(int)p[“ParentId”]似乎有点可疑。。。我看到至少有一个元素的ParentId为null。ParentId=(int)p[“ParentId”]似乎可疑。。。我看到至少有一个元素的ParentId为null。ParentId=(int)p[“ParentId”]似乎可疑。。。我看到至少有一个元素的ParentId为null。ParentId=(int)p[“ParentId”]似乎可疑。。。我至少看到一个ParentId为null的元素。哇!非常感谢Jon:)PS:文本
需要.ToString()
:)哇!非常感谢Jon:)PS:文本
需要.ToString()
:)哇!非常感谢Jon:)PS:文本
需要.ToString()
:)哇!非常感谢Jon:)PS:文本
需要.ToString()
:)