Para deserializar un objeto json, tuve que definir una clase padre que contendría un objeto o una matriz de objetos para la clase hija. Tiene que ser un objeto si se recuperó un objeto o una matriz de objetos si se recuperó una matriz de json.¿Cómo comprobar si una variable es Array u Object?
JSON matriz de objetos
{"y":{"x":[{"data":28}, {"data":56}, {"data":89}]}}
JSON objeto
{"y":{"x":{"data":28}}}
y está recibiendo x a la vez, y x [] en otro momento. No existe tal condición para determinar si y recibiría una matriz o un objeto.
Por lo tanto, para determinar si recibí una matriz o no, estoy comprobando la condición IsArray().
me trataron
class Y
{
public X x { get { return System.IsArray() ? new X() : new x[] }; set; }
}
class X
{
public int data { get; set; }
}
- Se isnt de trabajo.
- System.IsArray() no se reconoce?
¿Tiene control sobre la lógica que genera el JSON? De ser así, debería considerar rediseñar los objetos de datos para cumplir con un contrato estándar. Tener una propiedad que a veces es un solo objeto y, a veces una matriz, es un diseño pobre y problemático a largo plazo.Si tiene la capacidad, debería considerar hacer una matriz y construir sus modelos de objetos para dar cuenta de eso. –
[IsArray] (http://msdn.microsoft.com/en-us/library/system.type.isarray.aspx) comprueba un 'Tipo'. Debe verificarlo en el objeto que le interesa verificar, no en 'Sistema'. – Default