所以,我对C#相当新,我在使用JSON.net库时遇到了一些麻烦。现在我基本上试图对两个JSON文件进行深度检查,看看它们是否具有所有相同的属性。我想要递归地做,第一级很好,但是当我到达第二级时,我遇到了问题。原谅如果这是完全垃圾,但这是我到目前为止。 (我热切欢迎所有建设性的编辑)作为课程JsonParser
的一部分:
public static void checkProps(List<JObject> jObjList)
{
foreach (var keyValue in jObjList[0])
{
var key = keyValue.Key;
if (jObjList[1].Property(key) == null)
{
Console.WriteLine("Key '" + key + "' does not exist");
}
else if (keyValue.Value.GetType() == typeof(JObject))
{
List<JObject> objectsList = new List<JObject>();
objectsList.Add(keyValue.Value);//the issue here is the error 'cannot convert from ...JToken to ...JObject'
Console.WriteLine(keyValue.Value.GetType() + " ====>>");//but this prints 'Newtonsoft.Json.Linq.JObject'
Console.WriteLine(keyValue.Value);//prints the nested object
//here I'd like to call something like 'JsonParser.checkProps(objectsList);'
}
}
}
所以基本上我的(主要)问题是我无法将嵌套对象添加到我的新JObject列表中,因为尽管它们的类型以JObject
的形式写入控制台,但是编译器(或者某些东西)只将它们定义为类型JToken
。有谁知道如何解决这个/认识到我做错了什么?我显然在这里遗漏了一些东西。任何帮助表示赞赏。
干杯。