热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

提取类中的JSON属性名用于构建查询字符串

本文介绍了一种有效的方法,用于从类中提取JSON属性名称,并将其用于构建查询字符串。

根据@Leigh Shepperson的建议,我们可以利用LINQ简化代码量,实现从类中提取JSON属性名称的功能。这里提供一个辅助方法,该方法能够有效地完成这一任务:

using System.Linq;
using System.Reflection;
using Newtonsoft.Json;
...
public static string ExtractJsonFieldNames(Type classType)
{
return string.Join(",",
classType.GetProperties()
.Select(p => p.GetCustomAttribute())
.Where(a => a != null)
.Select(a => a.PropertyName));
}

此方法可以通过以下方式调用,以生成包含字段名称的查询字符串部分:

string queryPart = "&fields=" + ExtractJsonFieldNames(typeof(MyModel));

对于使用.NET Framework 3.5的用户,如果无法直接使用GetCustomAttribute泛型方法,可以通过组合使用GetCustomAttributes方法、SelectMany以及Cast来达到同样的效果:

return string.Join(",",
classType.GetProperties()
.SelectMany(p => p.GetCustomAttributes(typeof(JsonPropertyAttribute), false)
.Cast())
.Select(a => a.PropertyName)
.ToArray());


推荐阅读
author-avatar
男儿有志不言苦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有