首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将结构/类序列化为单个字符串

将结构/类序列化为单个字符串
EN

Stack Overflow用户
提问于 2019-01-30 05:17:44
回答 2查看 180关注 0票数 1

我在ViewModels中使用了一个结构,以简化自动序列化它们的方式。我希望它的序列化能够简单地调用.ToString()方法。目前,当它被序列化为JSON时,它会变成:"{}“。下面是我的Date类:

代码语言:javascript
复制
public struct Date
{
    private DateTime _date;

    public Date(DateTime date)
    {
        _date = date;
    }

    public static implicit operator Date(DateTime date) => new Date(date);

    public override string ToString() => _date.ToString("yyyy-MM-dd");
}

我想可能有一些属性可以用来装饰结构,或者可能有一些接口可以实现,但它似乎没有帮助。

EN

Stack Overflow用户

发布于 2019-01-30 05:55:15

经过进一步的研究,MVC似乎使用了JsonConverter属性来序列化JsonResult,下面的代码完成了我想要做的事情。

代码语言:javascript
复制
[JsonConverter(typeof(DateToString))]
public struct Date
{
    private DateTime _date;

    public Date(DateTime date)
    {
        _date = date;
    }

    public static implicit operator Date(DateTime date) => new Date(date);

    public override string ToString() => _date.ToString("yyyy-MM-dd");
}

public class DateToString : JsonConverter
{
    public override bool CanConvert(Type objectType) => objectType == typeof(Date);
    public override bool CanRead => false;
    public override object ReadJson(JsonReader reader, Type objectType, object existingValue, JsonSerializer serializer)
        => throw new NotImplementedException();

    public override void WriteJson(JsonWriter writer, object value, JsonSerializer serializer) =>
        writer.WriteValue(value.ToString());
}
票数 0
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54429724

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档