【问题标题】:How to get ServiceStack to format Guids with dashes when using JSON?使用 JSON 时如何让 ServiceStack 用破折号格式化 Guid?
【发布时间】:2012-04-04 03:39:33
【问题描述】:

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

用户对象非常简单:

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

发帖方式:

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?

【问题讨论】:

    标签: c# json servicestack guid


    【解决方案1】:

    您可以将您的 Guid 序列化程序覆盖为

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

    【讨论】:

    • 仅供参考,您需要覆盖 Guid 吗?如果您希望为可为空的 Guid 进行相同的序列化。
    • 使用 ToString("D") 更好,msdn.microsoft.com/en-us/library/97af8hh4.aspx
    • @LiuPeng:Guid? 没有ToString(string format)(任何Nullable&lt;T&gt;
    猜你喜欢
    • 1970-01-01
    • 2017-04-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-02
    相关资源
    最近更新 更多