2012-03-19 27 views
18

Sử dụng ServiceStack để trả về một đối tượng User đơn giản từ một Bài đăng.Làm thế nào để có được ServiceStack để định dạng hướng dẫn bằng dấu gạch ngang khi sử dụng JSON?

Đối tượng sử dụng là khá đơn giản:

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

Phương pháp bài:

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

Vấn đề của tôi là ServiceStack định dạng Guid không dấu gạch ngang, do đó phản ứng JSON trông ví dụ như thế này:

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

Máy khách là máy khách Android/Java và phương thức UUID.fromString() không hài lòng về định dạng này.

Có cách nào để buộc ServiceStack trả lại một Guid có định dạng dấu gạch ngang không?

Trả lời

29

bạn có thể ghi đè lên serializer Guid của bạn như

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

FYI, bạn cần phải ghi đè Guid? cũng như nếu bạn muốn cùng một serialization xảy ra cho nullable Guids. –

+4

sử dụng ToString ("D") tốt hơn, http://msdn.microsoft.com/en-us/library/97af8hh4.aspx –

+0

@LiuPeng: Không có 'ToString (định dạng chuỗi)' cho 'Guid? '(bất kỳ 'Nullable ') – wqw

Các vấn đề liên quan