如何在使用JSON时让ServiceStack将Guid格式化为带有破折号的形式?

19

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

用户对象非常简单:

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

POST方法:

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

我的问题是ServiceStack将Guid格式化为没有破折号的形式,因此JSON响应看起来像这样:

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

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

有没有办法强制ServiceStack返回带破折号格式的GUID?

1个回答

32

你可以重写你的 Guid 序列化器,如下所示:

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

3
如果您想使可空 Guid 发生相同的序列化,那么需要覆盖 Guid。 - Lance McNearney
4
更好地使用ToString("D"),请参考http://msdn.microsoft.com/en-us/library/97af8hh4.aspx。 - Liu Peng
@LiuPeng:Guid?(任何 Nullable<T>)没有 ToString(string format) 方法。 - wqw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接