C# 如何让ServiceStack在使用JSON时使用破折号格式化GUID?
使用ServiceStack从Post返回简单的用户对象 用户对象非常简单:C# 如何让ServiceStack在使用JSON时使用破折号格式化GUID?,c#,json,servicestack,guid,C#,Json,servicestack,Guid,使用ServiceStack从Post返回简单的用户对象 用户对象非常简单: 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
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?您可以将Guid序列化程序重写为
ServiceStack.Text.JsConfig<Guid>.SerializeFn = guid => guid.ToString();
ServiceStack.Text.JsConfig.SerializeFn=guid=>guid.ToString();
FYI,您需要覆盖Guid吗?同样,如果您希望对可为null的Guid进行相同的序列化。更好地使用ToString(“D”)。@LiuPeng:对于Guid?
(任何null
),没有ToString(字符串格式)
)