博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自已写的Json序列化方法,可以序列话对象的只读属性
阅读量:5265 次
发布时间:2019-06-14

本文共 1897 字,大约阅读时间需要 6 分钟。

/*    * by zhangguozhan 2015/1/5    * P2B.Common.CJson.ConvertJson.ObjectToJson
方法无法序列号只读属性。下面的实现填补了这个不足 *////
/// 将对象转换成JSON字符串/// ///
///
///
public static string ObjectToJson
(T obj) where T : class{ if (obj == null) return "object null"; string json = string.Empty; var properties = obj.GetType().GetProperties(); if (properties == null || !properties.Any()) return json; foreach (var property in properties) { if (!property.CanRead) continue; if (property.MemberType != System.Reflection.MemberTypes.Property) continue; string pName = property.Name; var pValue = property.GetValue(obj, null); if (/*property.PropertyType*/pValue is System.ValueType || pValue is string) { json += string.Format(",\"{0}\":\"{1}\"", pName, pValue == null ? "null" : pValue); } else { string subValue = string.Empty; if (pValue is System.Collections.IList) { var list = (pValue as System.Collections.IList); if (list.Count > 0) { string subJsons = string.Empty; foreach (var item in list) { subJsons += "," + ObjectToJson(item); } if (!string.Empty.Equals(subJsons)) subValue = subJsons.Substring(1); } } else { subValue = ObjectToJson(pValue); } if (!string.Empty.Equals(subValue)) { json += string.Format(",\"{0}\":[{1}]", pName, subValue); } } } if (json.Length > 0) json = "{
" + json.Substring(1) + "}"; return json;}

 

转载于:https://www.cnblogs.com/buguge/p/4203611.html

你可能感兴趣的文章
C# DataGridView 导出 Excel(根据Excel版本显示选择不同后缀格式xls或xlsx)
查看>>
Sql Server 添加外部程序集基本操作
查看>>
Windows Phone – 裁剪图片 (Crop Image)
查看>>
C# WebBrowser 获得选中部分的html源码
查看>>
[CLR via C#]1.4 执行程序集的代码
查看>>
为企业协同软件“伙伴”开发客户端
查看>>
[ArcGIS Engine]栅格数据处理 RasterDataset RasterLayer Raster RasterBandCollection
查看>>
jQuery实现的瀑布流效果, 向下滚动即时加载内容
查看>>
更换jdk版本需要配置eclipse啥地方
查看>>
action层接受js脚本中文参数乱码
查看>>
JavaScript/HTML格式化
查看>>
Javascript 中正则表达式验证网址
查看>>
iOS开发-UI (二)Button和Image
查看>>
POJ - 2031C - Building a Space Station最小生成树
查看>>
java 注解
查看>>
透视投影变换的感想
查看>>
Dreamweaver CS6破解教程[序列号+破解补丁]
查看>>
SQLPlus在连接时通常有四种方式
查看>>
Swing语法高亮
查看>>
正则学习
查看>>