我如何检查Jarray的数据类型? (C#)

时间:2017-09-18 14:31:35

标签: c# .net json types json.net

我有一个接收JProperty数组的方法。 这可以是一个简单的字符串数组:(“Img1.png”,“I​​mg2.png”等)。或带有对象的数组:

{[{
"id": "1",
"name": "name",
"image": "img1.png"},{
"id": "2",
"name": "name",
"image": "img2.png"},
{
"id": "3",
"name": "name",
"image": "img3.png"
}]}"

在接收的方法中,JProperty的不同操作需要发生,但我无法获得if语句来过滤对象事件。

这是我目前的代码:

private static void handleArray(JProperty array)
{

    foreach (JArray x in array)
    {
        JTokenType type = x.Type;
        if (type == JTokenType.Object)
        {
            Console.WriteLine("Array with objects!");
        }
        else { 
            foreach (string childrensTokens in x)
              //Array with normal strings
                Console.WriteLine(childrensTokens);
        }
    }
}

(else语句崩溃atm,因为它也收到了对象。) 有谁知道如何帮助我?我试图去找孩子们但是失败了。

1 个答案:

答案 0 :(得分:0)

修正了:

 private static void handleArray(JProperty array)
    {
        //voor de gewone array:

        foreach (JArray x in array)
        {
            foreach (var a in x)
                if(a.Type == JTokenType.Object)
                {
                    Console.WriteLine("Array with objects!");
                }
                else
                {
                    Console.WriteLine((string) a);
                }


        }