C# 无法强制转换类型为';Newtonsoft.Json.Linq.JObject';打字
我有一个包含节点数组的对象,其json序列化如下所示:C# 无法强制转换类型为';Newtonsoft.Json.Linq.JObject';打字,c#,json,.net-4.0,json.net,C#,Json,.net 4.0,Json.net,我有一个包含节点数组的对象,其json序列化如下所示: { "$type": "Toolbar, MyNamespace", "DisplayIcons": true, "NodeHolder": { "$type": "NodeHolder, NodeHolderNamespace", "RootNode": { "$type": "NodeHolder, NodeHolderNamespace", "Id": 0, "Title
{
"$type": "Toolbar, MyNamespace",
"DisplayIcons": true,
"NodeHolder": {
"$type": "NodeHolder, NodeHolderNamespace",
"RootNode": {
"$type": "NodeHolder, NodeHolderNamespace",
"Id": 0,
"Title": "root",
"Children": [
{
"$type": "NodeHolder, NodeHolderNamespace",
"Id": 10001,
"Title": "Homepage",
},
{
"$type": "NodeHolder, NodeHolderNamespace",
"Id": 10002,
...
}
我的问题是,当枚举子arraylist时,它无法将对象强制转换为NodeHolder,我收到一条错误消息:无法将“Newtonsoft.Json.Linq.JObject”类型的对象强制转换为NodeHolder类型。该类型已在json上定义,不确定下一步要尝试什么
序列化代码:
var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Objects;
string json = JsonConvert.SerializeObject(o, Formatting.Indented, settings);
Toolbar tb = JsonConvert.DeserializeObject<Toolbar>(json);
反序列化代码:
var settings = new JsonSerializerSettings();
settings.TypeNameHandling = TypeNameHandling.Objects;
string json = JsonConvert.SerializeObject(o, Formatting.Indented, settings);
Toolbar tb = JsonConvert.DeserializeObject<Toolbar>(json);
Toolbar tb=JsonConvert.DeserializeObject(json);
foreach(node.Children中的NodeHolder-child)…显示全部代码:如何反序列化对象,反序列化到的对象类型是什么我添加了序列化和反序列化行,访问反序列化对象的代码和工具栏的定义在哪里,节点文件夹
。显示所有相关信息,以便我们可以帮助您。