JToken到JObject转换还是解决方法?

时间:2016-01-08 00:19:23

标签: c# .net recursion json.net type-conversion

所以,我对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。有谁知道如何解决这个/认识到我做错了什么?我显然在这里遗漏了一些东西。任何帮助表示赞赏。

干杯。

0 个答案:

没有答案