使用JSON时如何让ServiceStack使用破折号格式化Guids?

Tor*_*och 19 c# json guid servicestack

使用ServiceStack从Post返回一个简单的User对象.

用户对象非常简单:

public class User
{
    public Guid Id { get; set; }
    public string Username { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

帖子方法:

public override object OnPost(User user)
{
    User newUser;
    // Do stuff to user...
    return newUser;
}
Run Code Online (Sandbox Code Playgroud)

我的问题是ServiceStack没有破折号格式化Guid,所以JSON响应看起来像这样:

{"id":"c884ce020ec94c65a8788c2ddc500434","username":"new user name"}
Run Code Online (Sandbox Code Playgroud)

客户端是Android/Java客户端,UUID.fromString()方法对此格式感到不满.

有没有办法强制ServiceStack返回用破折号格式化的Guid?

小智 30

你可以覆盖你的Guid序列化器

ServiceStack.Text.JsConfig<Guid>.SerializeFn = guid => guid.ToString();
Run Code Online (Sandbox Code Playgroud)

  • 使用ToString("D")更好,http://msdn.microsoft.com/en-us/library/97af8hh4.aspx (4认同)
  • 仅供参考,你需要覆盖Guid吗?如果你想为可空的Guids发生相同的序列化. (3认同)