vs2013 以上的实用小功能-将xml,json自动转换为class

      今天同事在处理接口的时候,为了构造出符合对方数据结构的Data,可谓是花费了大堆时间,根据json数据示例手写对应的class,无奈还总解析后数据不对,让我帮瞧瞧,这不,我立马想起了vs2013 及后续vs版本都支持的一个实用小功能-将xml,json 自动转换为class。 并且佩服微软搞的挺好用,只要将原需要反序列化成class的xml或json复制后一键就能自动生成class.

      举个xml 的例子吧,需要转换的xml如下:

    

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don't forget the meeting!</body>
</note>
   复制后在需要添加这个class的 地方 点击vs 编辑->选择性粘贴



生成的class 如下:

/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(AnonymousType = true)]
[System.Xml.Serialization.XmlRootAttribute(Namespace = "", IsNullable = false)]
public partial class note
{

    private string toField;

    private string fromField;

    private string headingField;

    private string bodyField;

    /// <remarks/>
    public string to
    {
        get
        {
            return this.toField;
        }
        set
        {
            this.toField = value;
        }
    }

    /// <remarks/>
    public string from
    {
        get
        {
            return this.fromField;
        }
        set
        {
            this.fromField = value;
        }
    }

    /// <remarks/>
    public string heading
    {
        get
        {
            return this.headingField;
        }
        set
        {
            this.headingField = value;
        }
    }

    /// <remarks/>
    public string body
    {
        get
        {
            return this.bodyField;
        }
        set
        {
            this.bodyField = value;
        }
    }
}

大概修改下 就能用了,爽吧,json转换class 就不举例了,相同的操作,但是需要注意由于xml 自身带有部分元数据的结构信息,因此生成的class 比较接近于原class,json数据就只有数据结构了,可能会导致生成的class 与实际不符,例如如果是某个属性是个数组,但是json中只有一个数据,就容易导致生成的class 不会是数组!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晨4点5杀老大爷

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值