C#按需序列化对象为Json字符串

只贴代码,不解释了。新的代理类型确实很给力!

public static class JsonHelper
{
    public static string ToJsonString<T>(IList<T> list, Func<T, string> fun)
    {
        StringBuilder buffer = new StringBuilder();
        bool isFirst = true;            
        
        foreach (T t in list)
        {
            if (!isFirst)
                buffer.Append(",");

            buffer.Append(fun(t));
            isFirst = false;
        }

        return buffer.ToString();
    }      

    public static string ToJsonString<T>(T t, Func<T, string> fun)
    {
        return fun(t);
    }
}
Josn Helper

实体类

public class Staff
{
    public string StaffNo { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }

    public Staff(string no, string fn, string ln)
    {
        StaffNo = no;
        FirstName = fn;
        LastName = ln;
    }
}
Staff Class

测试代码

class Program
{
    static void Main(string[] args)
    {
        Staff s = new Staff("10000", "11111", "22222");
        IList<Staff> list = new List<Staff> { s,s };          

        JsonHelper.ToJsonString<Staff>(list, o=>string.Format("{{firstname:{0}}}", o.FirstName));
        JsonHelper.ToJsonString<Staff>(s, o=>string.Format("{{firstname:{0}, lastname:{1}}}", o.FirstName, o.LastName)); 
        
        Console.ReadLine();
    }
}
Test code

 

收工,走人

转载于:https://www.cnblogs.com/yang_sy/p/3559779.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值