2010-03-18 11 views

Respuesta

7

También podría intentar usar DataContractJsonSerializer, que está definitivamente presente en las herramientas de MIX RC http://msdn.microsoft.com/en-us/library/system.runtime.serialization.json.datacontractjsonserializer.aspx.

+0

Si bien esta clase está presente en Silverlight, no está presente en Windows Phone 7. – legalize

+0

Parece estar allí ahora (a partir de las herramientas Beta que estoy viendo). – samjudson

+0

No puedo encontrarlo, y tengo la versión final de las herramientas. –

4

Parece que JSON es compatible con Windows Phone 7 en el espacio de nombres System.Runtime.Serialization.Json, con suerte, esto será útil, ¡aunque esta pregunta tiene un mes de antigüedad! La información de TechDays en Londres (a través de Twitter) no estaba allí personalmente.


Apenas una actualización es que el espacio de nombres y la clase que he citado aquí fue incorrecta por lo que aquí es el espacio de nombres correcta y clase:

System.ServiceModel.Web y la clase es DataContractJsonSerializer para la serialización JSON y deserialización de Windows Phone 7: disculpa por la respuesta inexacta que he corregido después de un comentario publicado aquí.

+0

Este espacio de nombres no está presente en Windows Phone 7, lo siento. Sin embargo, está en Silverlight. – legalize

+0

En realidad, es compatible con Windows Phone 7. Cité el espacio de nombres y la clase incorrectos, ya que no estaba seguro de qué era en ese momento, gracias por el comentario, ya que me recordó. DataContractJsonSerializer en System.Servicemodel.Web se utiliza para la serialización JSON y la deserialización, no System.Runtime.Serialization.Json, ya que es el espacio de nombres de Silverlight. Suponía que en el momento en que eran iguales la información en el espacio de nombres no era aparente cuando Respondí. – RoguePlanetoid

2

Mientras DataContractJsonSerializer está disponible en Silverlight, no parece estar disponible en Windows Phone 7 CTP. Tal vez aparecerá más tarde, pero no está allí ahora. (He intentado usarlo en código, el ensamblado System.Runtime.Serialization no incluye esta clase y el official documentation dice que la serialización JSON es algo que está en Silverlight, pero no en Windows Phone 7.)

Sin embargo, pudo tomar la biblioteca JSON.NET y crear un proyecto de biblioteca WP7. Esto me dio una infraestructura JSON en el teléfono que estoy usando con éxito.

+0

Traté de agregar una referencia a la versión .NET compact de JSON.NET desde mi proyecto de aplicación wp7, pero falló. ¿Estás diciendo que reconstruiste la fuente? –

2

En nuestro proyecto Windows Phone 7, estamos usando James Newton-Kings JSON.Net Library. Simplemente descargue el código y agregue una referencia a Newtonsoft.Json.Silverlight. Funciona de maravilla.

+0

Estoy usando esto también, es una gran solución para la plataforma. –

14

Agregue una referencia a System.ServiceModel.Web, así como la referencia a System.Runtime.Serialization y debería funcionar. System.ServiceModel.Web parece agregar .JSON al espacio de nombres Serialization.

+0

+1, muchas gracias. Esto me ayudó a llegar al final :-) –

+0

+1, también resolvió mi problema :) – dargod

+0

Es realmente extraño que haya funcionado la adición de System.ServiceModel.Web. Realmente agrega el .Json al espacio de nombres de serialización – Frederico