Deserializacja obiektu o nieznanym typie

0

Witam,
Moja metoda przyjmuje jsona i musi wypisać na ekranie, jakiego typu jest serializowany objekt. Niestety poniższe rozwiązanie nie działa. Nigdy nie wchodzi do żadnego ifa:

public void CheckType(string json)
        {
            object deserializedList = JsonConvert.DeserializeObject(json);

            if (deserializedList is List<int>)
                Console.WriteLine("Lista z intami");
            if (deserializedList is List<string>)
                Console.WriteLine("Lista z stringami");
        }
0

A pokażesz przykładowego jsona?

1

A ten zdeserializowany obiekt nie jest przypadkiem typu JArray dla kolekcji i JObject dla pojedynczych obiektów?

Nie chce mi się aprawdzac.

0

Hejka nie wiem, czy CI to w czymś pomoże, typ jaki posiada tak zdeserializowany obiekt to JArray. Metodką GetType() możesz uzyskać pewne informacje.

var x= "[	{color: \"red\",value: \"#f00\"	},	{color: \"green\","+
		"value: \"#0f0\"	},{	color: \"blue\",value: \"#00f\"	},	{color: \"cyan\",value: \"#0ff\"}]";

			CheckType(x);
            void CheckType(string json)
            {
                object deserializedList = JsonConvert.DeserializeObject(json);
                Console.WriteLine(deserializedList.GetType().Name);//JArray
                if(deserializedList is Newtonsoft.Json.Linq.JArray) //tu wejdzie
                    Console.WriteLine("Lista");
                if (deserializedList is List<int>)
                    Console.WriteLine("Lista z intami");
                if (deserializedList is List<string>)
                    Console.WriteLine("Lista z stringami");

                //wyswietli "Lista"
            }

1 użytkowników online, w tym zalogowanych: 0, gości: 1