引用Newtonsoft和XmlSerializer配合做的通用Json XML反序列化对象函数(C#)

在对接中我们最常接触到的数据格式为Json和XML,往往我们会用Newtonsoft和XmlSerializer进行反序列化成对象,从而能够使劲造。写得多了,总想搞点通用的玩意儿,不知道这是不是程序员的通病。下面分享一个通用的Json或XML反序列化函数。

首先咱先扩展一下String类:

namespace System
{
    public static class StringExtensions
    {
        public static bool IsJson(this string payload)
        {
            var pl = payload.Trim();
            return pl.StartsWith("{") && pl.EndsWith("}") ||
                pl.StartsWith("[") && pl.EndsWith("]");
        }

        public static bool IsXml(this string payload)
        {
            var pl = payload.Trim();
            return pl.StartsWith("<") && pl.EndsWith(">");
        }
    }
}

然后再去写目标函数:

private T getData<T>(string payload)
{
    if (payload.IsJson())
    {
        return JsonConvert.DeserializeObject<T>(payload);
    }
    else
    {
        var serializer = new XmlSerializer(typeof(T));
        return (T)serializer.Deserialize(new MemoryStream(payload));
    }
}

应用时,只需要传入对象和字符串即可。

var so = getData<SalesOrder>(payload);

实属班门弄斧不自量,权作抛砖引玉撩一笑。

相关推荐

  1. c# Newtonsoft.Json 序列序列

    2024-01-23 09:58:01       58 阅读
  2. Flutter-如何序列序列化为json对象

    2024-01-23 09:58:01       40 阅读
  3. C++ tcp中可变长度结构体序列序列

    2024-01-23 09:58:01       22 阅读
  4. C++中序列序列

    2024-01-23 09:58:01       59 阅读
  5. c++序列序列简单demo

    2024-01-23 09:58:01       32 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-23 09:58:01       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-23 09:58:01       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-23 09:58:01       82 阅读
  4. Python语言-面向对象

    2024-01-23 09:58:01       91 阅读

热门阅读

  1. 电脑网卡ip修改

    2024-01-23 09:58:01       55 阅读
  2. 知识笔记(九十四)———vue3中的菠萝能吃吗?

    2024-01-23 09:58:01       49 阅读
  3. Angular:跨域请求携带 cookie

    2024-01-23 09:58:01       47 阅读
  4. 502. IPO(贪心算法+优先队列/堆)

    2024-01-23 09:58:01       53 阅读
  5. LeetCode-题目整理【4】:跳跃游戏

    2024-01-23 09:58:01       50 阅读
  6. VirtualBox的Centos上安装GNOME桌面完整教程

    2024-01-23 09:58:01       61 阅读
  7. RK3568 Ubuntu关于rootfs大小问题

    2024-01-23 09:58:01       44 阅读