Muy buenas!
Tengo un problema con un JSON que no se cómo "deserializar". Quiero decir, se cómo hacerlo, pero es para un caso particular, y es que un objeto puede tener un número variable de campos. Me explico con código:
"body":
[
{
"type":"String",
"plain":"ASDF "
},
{
"type":"ExternalURL",
"plain":"http:\/\/www.url.com",
"url":"http:\/\/www.url.com",
"favicon":"http:\/\/bin.images.url.com"
}
]
Como veis, el "body" es una lista de objetos variables. No tengo ni idea de cómo hacer esto. He intentado hacer un objeto que tuviera los 4 campos y peta. Uno con los 2 comunes y también. Uno con los dos comunes y otro que herede de él y tenga los 2 que faltan. Pero será que estoy ofuscado, pues no veo cómo enlazar ambos de manera automática. Y el JSON lo obtengo de una página (es decir, no tengo manera de cambiarlo)
Estoy programando para windows phone 7.0 y usando DataContracJsonSerializer
Muchas gracias de antemano!
Para el caso ese que comentas vas a tener que serializarlo a mano, sin el DataContracJsonSerializer, creo.
De todas formas, a ver si Vicente te lo puede confirmar, porque lo mismo hay algo para hacer lo que tu dices.
Ni idea :D Pregunta por aqui a ver si te pueden ayudar:
http://social.msdn.microsoft.com/Forums/es-es/windowsphone7/threads
Llevo un rato temiéndomelo, tener que programarme mi propio serializer...
¿Hasta qué punto creeis que sería complicarlo hacerlo "bien"? Porque a mí lo que se me ocurre ahora es ir tirando de substrings 8o
Por cierto, gracias por el enlace, ya puse ahí el comentario a ver si hay suerte.
También ví por ahí la "librería" Json.NET, pero no se si se podrá usar en WP
Un saludo!
EDIT: De hecho, ni siquiera es necesario empezar uno desde 0, con heredar del DataContract y que simplemente, cuando no encuentre algo, pase en vez de tirar una exception de IlegalCast (o como fuera, ahora mismo no me acuerdo) me sería suficiente
EDIT 2: Al final he usado Json.NET, va muy bien la verdad, lo hizo todo exactamente como yo quería
Gracias!