C# 使用Newtonsoft.Json的JsonProperty设置返回的Json数据列名/C# 通过实体类序列化生成自定义字段的json数据

news/2025/3/14 17:35:34/文章来源:https://www.cnblogs.com/Dongmy/p/18235744

原文链接:https://blog.csdn.net/weixin_44917045/article/details/103236167

                 https://blog.csdn.net/bazinga_y/article/details/134416680

在写分页的时候,返回Json数据给前台的时候,数据不能出来,原因就是Json数据的列名是大写的,而页面需要的是小写的。

 解决办法

public class PageResult<T>
{[JsonProperty("total")]public long Total { get; set; }[JsonProperty("rows")]public List<T> Rows { get; set; }
}

  

 

 

使用JsonProperty注解中的PropertyName 属性可以自定json字段名称,NullValueHandling 属性,为Include时,当该字段没有赋值时,生成json数据会包含该字段;当为Ignore时,该字段没有赋值时,生成json数据,会忽略该字段。
以下是实体示例:

    public class FundCollection{/// <summary>/// 组织编码/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "pk_org", NullValueHandling = NullValueHandling.Include)]public string PkOrg { get; set; }/// <summary>/// 单据编号/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "bill_no", NullValueHandling = NullValueHandling.Ignore)]public string BillNo { get; set; }/// <summary>/// 部门编码/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "pk_dept", NullValueHandling = NullValueHandling.Ignore)]public string PkDept { get; set; }/// <summary>/// 结算方式编码/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "pk_balatype", NullValueHandling = NullValueHandling.Include)]public string PkBalatype { get; set; }/// <summary>/// 单据日期/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "bill_date", NullValueHandling = NullValueHandling.Ignore)]public string BillDate { get; set; }/// <summary>/// 币种编码/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "pk_currtype", NullValueHandling = NullValueHandling.Ignore)]public string PkCurrtype { get; set; }/// <summary>/// 收款银行账户/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "pk_account", NullValueHandling = NullValueHandling.Include)]public string PkAccount { get; set; }/// <summary>/// 备注/// 收款时合并字段(供应商+费用类型)展示摘要中   /// 例如:收XX公司平台使用费/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "memo", NullValueHandling = NullValueHandling.Ignore)]public string Memo { get; set; }/// <summary>/// 自定义项1 银行流水编码/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "def1", NullValueHandling = NullValueHandling.Ignore)]public string Def1 { get; set; }/// <summary>/// 制单人用户编码/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "billmaker", NullValueHandling = NullValueHandling.Include)]public string Billmaker { get; set; }/// <summary>/// 来源系统编码/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "source_flag", NullValueHandling = NullValueHandling.Include)]public string SourceFlag { get; set; }/// <summary>/// 客户编码/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "pk_customer", NullValueHandling = NullValueHandling.Include)]public string PkCustomer { get; set; }/// <summary>/// json数组 传入多个对象/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "body", NullValueHandling = NullValueHandling.Include)]public List<FundCollectionBody> BodyList { get; set; }}public class FundCollectionBody{/// <summary>/// 币种编码/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "pk_currtype", NullValueHandling = NullValueHandling.Ignore)]public string PkCurrtype { get; set; }/// <summary>/// 单据日期/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "bill_date", NullValueHandling = NullValueHandling.Ignore)]public string BillDate { get; set; }/// <summary>/// 收款原币金额/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "rec_primal", NullValueHandling = NullValueHandling.Include)]public string RecPrimal { get; set; }/// <summary>/// 税类别/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "def1", NullValueHandling = NullValueHandling.Ignore)]public string Def1 { get; set; }/// <summary>/// 贸易方式/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "def2", NullValueHandling = NullValueHandling.Ignore)]public string Def2 { get; set; }/// <summary>/// 税率/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "def3", NullValueHandling = NullValueHandling.Ignore)]public string Def3 { get; set; }/// <summary>/// 税金/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "def4", NullValueHandling = NullValueHandling.Ignore)]public string Def4 { get; set; }/// <summary>/// 创建时间/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "creationtime", NullValueHandling = NullValueHandling.Ignore)]public string Creationtime { get; set; }/// <summary>/// 付款银行账号 供应商账户名称/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "pk_oppaccount", NullValueHandling = NullValueHandling.Include)]public string PkOppaccount { get; set; }/// <summary>/// 客户编码/// 是否必填:否 /// </summary>[JsonProperty(PropertyName = "pk_customer", NullValueHandling = NullValueHandling.Ignore)]public string PkCustomer { get; set; }/// <summary>/// 收款银行账号/// 是否必填:是/// </summary>[JsonProperty(PropertyName = "pk_account", NullValueHandling = NullValueHandling.Include)]public string PkAccount { get; set; }/// <summary>/// 收款时合并字段(供应商+费用类型)展示摘要中   /// 例如:收XX公司平台使用费/// 是否必填:否/// </summary>[JsonProperty(PropertyName = "memo", NullValueHandling = NullValueHandling.Ignore)]public string Memo { get; set; }}

  以下是调用示例:

  			FundCollection fund = new FundCollection();fund.BillNo = "PF-202301-00001";fund.Billmaker = "10880D";var list = new List<FundCollectionBody>();FundCollectionBody body = new FundCollectionBody{PkCurrtype = "类型",Memo = "备注标识"};list.Add(body);fund.BodyList = list;var serializerSettings = new JsonSerializerSettings{// 设置为驼峰命名ContractResolver = new CamelCasePropertyNamesContractResolver()};var jsonData= JsonConvert.SerializeObject(fund, (Newtonsoft.Json.Formatting)System.Xml.Formatting.None, serializerSettings);

  以下是生成的json数据:

{"pk_org":null,"bill_no":"PF-202301-00001","pk_balatype":null,"pk_account":null,"billmaker":"10880D","source_flag":null,"pk_customer":null,"body":[{"pk_currtype":"类型","rec_primal":null,"pk_oppaccount":null,"pk_account":null,"memo":"备注标识"}]}

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/721042.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【WPF】Dispatcher 与消息循环

这一期的话题有点深奥,不过按照老周一向的作风,尽量讲一些人鬼都能懂的知识。 咱们先来整个小活开开胃,这个小活其实老周在 N 年前写过水文的,常阅读老周水文的伙伴可能还记得。通常,咱们按照正常思路构建的应用程序,第一个启动的线程为主线程,而且还是 UI 线程(当然,…

Revit二次开发-使用Advanced Installer打包插件安装包

插件开发属于客户端开发,当我们交付产品给客户的时候,肯定用安装包的形式交付是最佳方案。所以我摸索了一下怎么用Advanced Installer来打包插件安装包。Advanced Installer简介 Advanced Installer 是一款功能强大且用户友好的 Windows 安装包制作工具,专门用于创建安装包(…

bootstrap.css-表单-登录案例

<!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8"><title>Title</title><!--引入bootstrap.css样式--><link rel="stylesheet" href="static/plugins/bootstrap-3.4.1/css/boo…

编译器 7. 中间代码 | 5. 程序设计

IR 代码中 符号代码( label )沿用不变 int 调用 T_Const(int i ) Tree 模块:1. patchList:真值/假值 回填表 这里是 patchList 的生成, 至于具体怎么回填后面才会讲 struct patchList_ {Temp_label *head; patchList tail};// 生成 stm stm = T_Cjump(T_ge, unEx(left), unE…

入手戴尔R720服务器(1)通过iDRAC查看系统信息

想入手服务器很久了,一直担心功耗太高,今天狠心搞了一台戴尔服务器R720。需求开虚拟机,核心数要多 学习以下Windows云桌面 AD域控 office online server ubuntu试验机 随便折腾不怕玩坏最好两个网口以上稳定四个以上硬盘位‍为什么是R720?1000元预算 买来吃灰的可能性很大,…

jpg转pdf有没有免费的方法?

图片转pdf哪里有免费的?为了方便我们整理一些图片资料或一些证件照图片资料,我们通常会选择将图片转PDF文档进行保存,这样一来更方便存储和传输。图片文件传输,会出现格式不兼容无法传输的问题,而PDF文档就不用担心对方无法打开或无法输出的问题。 那如何jpg转pdf呢?今天…

Netty 快速入门

什么是 Netty Netty的官网: [https://netty.io/ Netty是一个Java NIO技术的开源异步事件驱动的网络编程框架,用于快速开发可维护的高性能协议服务器和客户端。 往通俗了讲,可以将 Netty 理解为:一个将Java NIO进行了大量封装,并大大降低Java NIO使用难度和上手门槛的网络编…

百兆网口和千兆网口指示含义的区别

网口指示灯状态:千兆网口和百兆网口灯的含义不同千兆网口:根据核心板提供给ETH0_LED1、ETH0_LED1的信号 当与其连接的是百兆网口PHY芯片的设备时,LED1(绿灯)亮,LED2(黄灯)不亮当有数据发送或者接收时,闪烁; 当与其连接的是千兆网口PHY芯片的设备时,LED2(黄灯)亮,…

Hershell反向shell生成器+msf加密通信免杀

转自:https://www.cnblogs.com/Chuantouli/p/12298579.html 简介 Hershell1Hershell(<a href="github.com/sysdream/hershell" target="_blank" rel="noopener">github.com/sysdream/hershell</a>)是基于golang开发的一款反向shell…

浏览器在局部区域全屏下,UI部分弹窗组件无法正常显示的问题

import screenfull from screenfull// 全屏 handleScreen() {//screenfull.isEnabled 此方法返回布尔值,判断当前能不能进入全屏if (!screenfull.isEnabled) {return false}//screenfull.toggle 此方法是执行全屏化操作。如果已是全屏状态,则退出全屏screenfull.toggle(this…

word如何转换成pdf?这4种方法超实用!

在处理文档时,将Word文档转换为PDF格式是一种常见的需求。PDF格式具有跨平台、保持原始格式等优点,使得在不同设备和操作系统上查看和打印文档时保持一致性。那么word怎么转换成pdf呢?本文将介绍四种将Word文档转换为PDF的方法,以满足不同用户的需求。 方法一:使用Word自带…

农业科技的丰收革命:农情监测系统引领农业数字化转型的浪潮

在科技飞速发展的今天,农业领域正经历着一场深刻的智能化、数字化变革。在这场变革中,农情监测系统以其独特的优势,成为推动农业转型升级的重要力量。它利用先进的物联网技术和云端平台,实现了对农业环境、病虫害等关键信息的实时、精准监测,为农业生产提供了强大的数据支…