Acabo de descargar ServiceStack.Text para usarlo en mi ASP.NET. Tengo clases con muchas propiedades y me gustaría serializar cinco de ellas (cadena, entero, binario) a JSON. ¿Alguien podría publicar un ejemplo simple de cómo crear un objeto JSon de mi clase?ServiceStack.Text cómo serializar la clase a JSon
Respuesta
ServiceStack se deserializar todo propiedades públicas de un POCO por defecto.
Si solo desea serializar solo algunas de las propiedades, entonces desea decorar su clase con los atributos [DataContract], [DataMember] (de la misma manera que si estuviera usando MS DataContractJsonSerializer), por ejemplo:
[DataContract]
public class MyClass
{
public string WillNotSerializeString { get; set; }
[DataMember]
public string WillSerializeString { get; set; }
[DataMember]
public int WillSerializeInt { get; set; }
[DataMember]
public byte[] WillSerializeByteArray { get; set; }
}
continuación, puede utilizar cualquiera de los métodos estáticos de utilidades en la JsonSerializer a (de) serializar, o los métodos de extensión más lacónicas, por ejemplo:
var dto = new MyClass { WillSerializeString = "some text" };
string json = dto.ToJson();
MyClass fromJson = json.FromJson<MyClass>();
Editar:
Como @Noah menciona (de los comentarios) también puede usar el atributo [IgnoreDataMember] para excluir una sola propiedad.
Del mismo modo, si quiere que todas sus propiedades sean _except_ una, puede decorar esa propiedad con '[IgnoreDataMember]', PERO NO debe decorar la clase con '[DataContract]' en ese caso, o no funcionará como esperado. Acabo de hacer esto con ServiceStack en un proyecto, y me alegré de ver que funcionó. –
Y tenga en cuenta: serialize/deserialize all public> properties <, that does not include> fields <. –
@Quandary Correcto, debe configurar 'JsConfig.IncludePublicFields = true;' para serializar los campos públicos, consulte: http://stackoverflow.com/a/15372520/85785 – mythz
Usted puede utilizar el atributo [Serializable()]
en su clase personalizada y, a continuación:
JavaScriptSerializer serializer = new JavaScriptSerializer();
var Json = serializer.Serialize(myObject);
Ignorar propiedades específicas en el objeto que está serialización, simplemente coloque el attribure [NonSerialized]
en ellos.
Actualización:
Teniendo en cuenta que desea utilizar ServiceStack hacer su serialización, el sitio ServiceStack da el siguiente ejemplo:
var customer = new Customer { Name="Joe Bloggs", Age=31 };
var json = JsonSerializer.SerializeToString(customer);
var fromJson = JsonSerializer.DeserializeFromString<Customer>(json);
No quiero usar el serializador de Microsoft porque es muy lento. Pregunto por ServiceStack.Text – Tomas
Si está interesado específicamente en ServiceStack.Text, ¿qué le impide descargar su proyecto de muestra y solo echarle un vistazo? –
El sitio web ServiceStack incluso le muestra cómo usarlo: http://www.servicestack.net/mythz_blog/?p=344 –
prueba de la cuenta de servicios demuestra que al proporcionar el atributo [DataContract]
y [DataMember]
le permite determinar cuál se está serializando y cuál no.
objetos de prueba: https://github.com/ServiceStack/ServiceStack.Text/blob/master/tests/ServiceStack.Text.Tests/Support/DdnDtos.cs
- 1. cómo serializar la clase?
- 2. Serializar un objeto a JSON
- 3. serializar clase a XML?
- 4. Cómo serializar a JSON en Qt
- 5. Serializando ExpandoObject con ServiceStack.Text
- 6. ¿Serializar un objeto a JSON, XML, YAML?
- 7. Programar serializar la clase a xsd
- 8. Serializar a JSON en .NET 2.0
- 9. Serializar un POJO a JSON con GSON
- 10. Serializar/deserializar objeto-gráfico PHP a JSON
- 11. Serializar objeto javascript a json y volver
- 12. JSON.net Serializar objeto C# a JSON Problema
- 13. JIT. Mejor manera de serializar a json
- 14. serializar excepciones a JSON con la primavera-mvc
- 15. Cómo serializar el objeto JSON en java
- 16. cómo serializar XML a un objeto JSON con Json.NET
- 17. Cómo serializar clase hija no estático de la clase estática
- 18. Serializar o json en PHP?
- 19. Utilizando JSON serializar/Deserialize TimeSpan
- 20. serializar una clase estática?
- 21. Serializar objeto .Net a json, controlado mediante atributos xml
- 22. Clase JSON a Java
- 23. C# serializar miembro privado de la clase
- 24. Serializar/deserializar a través de la clase super
- 25. ServiceStack.Text JSON deserialización crea objeto equivocado en lugar de tirar de la cadena de entrada no válida JSON
- 26. WCF DataContract vs serializar la clase
- 27. Obteniendo una excepción OutOfMemoryException al serializar a JSON?
- 28. serializar Lista/deserializar <T> a JSON
- 29. Cómo XML serializar clase infantil con su clase base
- 30. JSON Serializar Django modelos con simplejson
importación tener en cuenta que aunque es necesario el uso de 'ServiceStack;' en sus importaciones, el método 'ToJson' requiere no sólo un árbitro ServiceStack sino que también requiere una referencia a ServiceStack.Text en su proyecto. – ruffin