2012-03-19 8 views
18

Utilizando ServiceStack para devolver un objeto Usuario simple de una publicación.¿Cómo obtener ServiceStack para formatear las guías con guiones cuando se usa JSON?

El objeto de usuario es bastante simple:

public class User 
{ 
    public Guid Id { get; set; } 
    public string Username { get; set; } 
} 

el método POST:

public override object OnPost(User user) 
{ 
    User newUser; 
    // Do stuff to user... 
    return newUser; 
} 

Mi problema es que ServiceStack formatea el Guid sin guiones, así que la respuesta JSON se ve, por ejemplo, de esta manera:

{"id":"c884ce020ec94c65a8788c2ddc500434","username":"new user name"} 

El cliente es un cliente de Android/Java y el método UUID.fromString() no se molesta acerca de este formato.

¿Hay alguna manera de forzar a ServiceStack a devolver un Guid formateado con guiones?

Respuesta

29

puede anular su serializador Guid como

ServiceStack.Text.JsConfig<Guid>.SerializeFn = guid => guid.ToString(); 
+3

FYI, es necesario anular Guid? también si desea que se produzca la misma serialización para Guids con nulos. –

+4

usando ToString ("D") mejor, http://msdn.microsoft.com/en-us/library/97af8hh4.aspx –

+0

@LiuPeng: No hay 'ToString (formato de cadena)' para 'Guid?' (cualquier 'Nullable ') – wqw

Cuestiones relacionadas