2012-03-19 9 views
18

Korzystanie z usługi ServiceStack w celu zwrócenia prostego obiektu użytkownika z wpisu.Jak zdobyć ServiceStack, aby formatować Guidy za pomocą kresek podczas używania JSON?

Zadaniem użytkownika jest dość prosta:

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

metody POST:

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

Mój problem jest to, że ServiceStack formatuje GUID bez kresek, więc odpowiedź JSON wygląda np tak:

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

klient jest klientem Android/Java i metoda UUID.fromString() nie denerwować o tym formacie.

Czy istnieje sposób zmuszenia ServiceStack zwrócić Guid sformatowany z myślnikami?

Odpowiedz

29

można przesłonić swoje serializatora Guid jako

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

FYI, trzeba zastąpić Guid? a także jeśli chcesz, aby ta sama serializacja stała się ważna dla Guidów nullable. –

+4

przy użyciu ToString ("D") lepiej, http://msdn.microsoft.com/en-us/library/97af8hh4.aspx –

+0

@LiuPeng: Nie ma 'ToString (format ciąg)' dla 'Guid?' (dowolny 'Nullable ') – wqw

Powiązane problemy