Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





"Deserializar" JSON

Iniciado por pichoneto, 30 de Mayo de 2011, 08:55:27 PM

« anterior - próximo »

pichoneto

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!

fjfnaranjo

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.
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)


pichoneto

#3
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!






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.