Wie um zu überprüfen, ob eine variable ein Array oder Objekt?

Für deserialising ein json-Objekt, ich hatte zum definieren eines übergeordneten Klasse enthalten würde, die ein Objekt oder ein array von Objekten für die Kind-Klasse. Es muß sich um ein Objekt wenn Sie ein Objekt abgerufen wurde, oder ein array von Objekten, wenn ein array abgerufen wurde von der json.

JSON-array-Objekt

{"y":{"x":[{"data":28}, {"data":56}, {"data":89}]}}

JSON-Objekt

{"y":{"x":{"data":28}}}

y ist, erhalten x und x[] zu einem anderen Zeitpunkt. Es gibt keine solche Bedingung, um zu ermitteln, ob y würde erhalten ein array oder ein Objekt.

Daher für die Bestimmung, ob erhielt ich ein array ist oder nicht, ich bin der überprüfung der IsArray () - Bedingung.

Versuchte ich

class Y
{
   public X x { get { return System.IsArray() ? new X() : new x[] }; set; }
}

class X
{
   public int data { get; set; }
}
  1. Es nicht funktioniert.
  2. System.IsArray() nicht erkannt wird??
  • Sie haben die Kontrolle über die Logik erzeugt, dass der JSON? Wenn ja, sollten Sie überlegen, die Neugestaltung der Daten-Objekte zu Folgen, einen standard-Vertrag. Eine Eigenschaft, die manchmal ist ein einzelnes Objekt und manchmal auch ein array ist ein schlechtes design und problematisch auf lange Sicht. Wenn Sie die Möglichkeit haben, sollten Sie genau überlegen, so dass es ein array und bauen Sie Ihr Objekt-Modellen zu berücksichtigen.
  • IsArray prüft auf eine Type. Sie sollten überprüfen Sie es auf das Objekt, das Sie überprüfen möchten, nicht auf System.
InformationsquelleAutor anurag | 2012-04-12
Schreibe einen Kommentar