Me estoy integrando a una API que devuelve este modelo desde casi puntos finales
{ meta: { ... }, data: { ... } }Pero para algunas llamadas, los datos son una matriz del mismo tipo de objetos
{ meta: { ... }, data: [ { ... }, { ... } ] } Quiero usar HttpContent.ReadAsAsync<ResponseObj> para convertir ambos en mis clases de C#, y configuré la clase de respuesta de esta manera:
public class ResponseObj { public MetaObj Meta {get;set;} public DataObj[] Data {get;set;} }Como era de esperar, obtengo una excepción al intentar analizar la primera respuesta. ¿Es posible decirle al analizador JSON que maneje el objeto de datos único y devuelva una matriz de un solo elemento?
La única otra solución que puedo ver es crear definiciones de ResponseObj separadas para los dos tipos de respuesta diferentes.
Cree su ResponseObj como una clase genérica.
public class ResponseObj<T> { public MetaObj Meta {get;set;} public T Data {get;set;} } Puede deserializar json usando HttpContent.ReadAsAsync<ResponseObj<DataObj>> o HttpContent.ReadAsAsync<ResponseObj<DataObj[]>>