2010-04-22 11 views
7

Tengo mensajes entrantes que necesito probar y analizar en mi propia estructura de objetos. Algunos de estos son obejcts JSON bien formados y algunos son tonterías.Validando el resultado de JsonConvert.DeserializeObject (piense en "intente analizar") usando JSON.Net

Uso JsonConvert.DeserializeObject<MyObject>(incmoingString); para hacer esto. Sin embargo, esto a veces me da una excepción cuando la entrada es basura total. Otras veces obtengo una estructura de objeto no completa cuando la cadena entrante está un poco OK, y finalmente a veces funciona.

He envuelto la conversión en un try/catch y valido manualmente que he obtenido las propiedades que necesito para el resultado deserializado.

¿Hay una mejor manera de hacerlo?

+1

Probablemente no, a menos que el 'convertidor' le permita adjuntar eventos como 'XmlSerializer' para entidades/atributos no resueltos. – leppie

Respuesta

4

Json.NET admite JSON Schema. Puede crear un esquema con todas las propiedades requeridas marcadas y validar el JSON entrante contra él antes de deserializar.

+2

¿Cómo harías esto? – Zoltan

+2

¿No hay forma de validar que el esquema es JSON válido? – Jordan

Cuestiones relacionadas