C# Newtonsoft.Json object 转 json 为空

2023-11-18

问题

使用 Newtonsoft.Json 框架 object 转 json,发现用 internal 修饰的属性,不能被转json

JsonConvert.SerializeObject(obj)

例如

internal sealed class CountSheet
{
    internal List<CountSheetItem> ArrayOfItems { get; set; }
    internal string AssignedUser { get; set; }
    internal string Comments { get; set; }
    internal string CountDate { get; set; }
    internal int DocEntry { get; set; }
    internal int DocNum { get; set; }
    internal int LineCount { get; set; }
    internal string Reference { get; set; }
    internal int Started { get; set; }
}

属性值被声明为 internal 类型的,转 json 后,发现是空{}。

分析

查了资料发现 Newtonsoft.Json 这个框架支持 public 类型的属性转 json, 其他类型的不会被转,如果需要其他类型的也转 json,需要添加 [JsonProperty] 修饰。

internal sealed class CountSheet
{
    [JsonProperty]
    internal List<CountSheetItem> ArrayOfItems { get; set; }
    [JsonProperty]
    internal string AssignedUser { get; set; }
    [JsonProperty]
    internal string Comments { get; set; }
    [JsonProperty]
    internal string CountDate { get; set; }
    [JsonProperty]
    internal int DocEntry { get; set; }
    [JsonProperty]
    internal int DocNum { get; set; }
    [JsonProperty]
    internal int LineCount { get; set; }
    [JsonProperty]
    internal string Reference { get; set; }
    [JsonProperty]
    internal int Started { get; set; }
}

添加 [JsonProperty] 前需要先 using Newtonsoft.Json;

解决

  1. 将属性修饰为 public 类型

  1. 添加 [JsonProperty]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# Newtonsoft.Json object 转 json 为空 的相关文章

  • 无法将 std::min 传递给函数,std::min 的副本有效

    Passing std min函数无法编译 我复制了 libcpp 声明std min进入我的源文件并且它可以工作 std 版本有什么问题 clang 和 gcc 也会发生同样的情况 在 Godbolt 上测试 https godbolt
  • XPATH 查询、HtmlAgilityPack 和提取文本

    我一直在尝试从名为 tim new 的类中提取链接 我也得到了解决方案 给出了解决方案 片段和必要的信息here https stackoverflow com questions 2982862 extracting a table ro
  • C# 处理标准输入

    我目前正在尝试通过命令行断开与网络文件夹的连接 并使用以下代码 System Diagnostics Process process2 new System Diagnostics Process System Diagnostics Pr
  • C 中“complex”的默认类型

    根据我读过的文档 C99 和更高版本的支持float complex double complex and long double complex作为复杂类型 但是 此代码在使用时编译时不会发出警告gcc Wall Wextra inclu
  • 用数组反向查找对象

    假设我有一个这样的对象 resourceMap a 0 1 2 3 4 5 6 7 8 9 10 b 11 12 c 21 23 d 54 55 56 57 510 确定是否的最佳方法是什么resourceId 21将会 c 我们不知道钥匙
  • 静态类与类的实例

    我有一个静态类 用于访问我的公共属性 整个应用程序的全局属性 和我在应用程序运行期间使用的方法 例如 我在静态类中设置了一些属性 并且在应用程序运行时我可以从属性中获取值 但我可以使用单例模式创建非静态类并以相同的方式使用它 问题 对于我的
  • 如何使用递归查找数字中的最小元素 [C]

    好的 所以我正在准备我的 C 考试 当谈到递归时我有点卡住了我是大学一年级的学生 这对我来说似乎有点困难 练习要求在给定的数字中使用递归函数我需要找到最小的元素 例如 52873 是 2 程序需要打印 2 include
  • Resharper:IEnumerable 的可能多重枚举

    我正在使用新的 Resharper 版本 6 在我的代码中的几个地方 它给一些文本加了下划线 并警告我可能存在IEnumerable 可能的多重枚举 我理解这意味着什么 并在适当的情况下采纳了建议 但在某些情况下 我不确定这实际上是一个大问
  • 使用 OleDbCommandBuilder 时访问 SQL 语法错误

    我要在 C 中使用 OleDbDataAdapter 在 Access 数据库中插入数据 但收到错误消息INSERT INTO 命令中的语法错误 BackgroundWorker worker new BackgroundWorker Ol
  • 将错误代码映射到 C++ 中的字符串

    将错误代码从枚举映射到字符串的更有效方法是什么 在 C 中 例如 现在我正在做这样的事情 std string ErrorCodeToString enum errorCode switch errorCode case ERROR ONE
  • 如何使用 CSI.exe 脚本参数

    当你运行csi exe 安装了 Visual Studio 2015 update 2 您将得到以下语法 Microsoft R Visual C Interactive Compiler version 1 2 0 51106 Copyr
  • 使用多线程进行矩阵乘法?

    我应该使用线程将两个矩阵相乘 有两件事 当我运行程序时 我不断得到 0 我还收到消息错误 对于每个错误 它在粗体行上显示 警告 从不兼容的指针类型传递 printMatrix 的参数1 我尝试打印输出 还要注意 第一个粗体块 这是我解决问题
  • doxygen c++:记录由“using”声明公开的私有继承成员

    作为一个例子 我有以下课程 class A public void methodOne class B private A public Brief description using A methodOne 我还没有找到强制 doxyge
  • C# 中的 C/C++ 代码编译器

    在 C 中 我可以使用下面的代码编译 VB 和 C 代码 但无法编译 C C 代码 有什么办法可以做到这一点吗 C 编译器 public void Compile string ToCompile string Result null st
  • EnumDisplayDevices 与 WMI Win32_DesktopMonitor,如何检测活动监视器?

    对于我当前的 C 项目 我需要为在大量计算机上连接并处于活动状态的每个监视器检测一个唯一的字符串 研究指出了两种选择 使用 WMI 并查询 Win32 DesktopMonitor 以获取所有活动监视器 使用 PNPDeviceID 来唯一
  • 使用 xslt 将 xml 转换为 xsl-fo 时动态创建超链接?

    我想使用 xsl 文件在 PDF 报告中创建标题 如果源文件包含超链接 则应将其呈现为超链接 否则呈现为纯文本 例如 我的 xml 如下所示 a href http google com target blank This is the h
  • 如何在dll级别读取app.config? [复制]

    这个问题在这里已经有答案了 我在一个解决方案中有一个控制台应用程序项目和库项目 dll The 图书馆项目有 app config 文件 我在其中存储我在库中使用的一些键值对 控制台应用程序引用此 dll 我有另一个 app config
  • 如何将 int 作为“void *”传递给线程启动函数?

    我最初有一个用于斐波那契变量数组的全局变量 但发现这是不允许的 我需要进行基本的多线程处理并处理竞争条件 但我无法在 pthread 创建中将 int 作为 void 参数提供 我尝试过使用常量指针 但没有成功 由于某些奇怪的原因 void
  • 将 Swagger 与命名空间版本的 WebApi 结合使用

    我已经找到了如何使用基于名称空间的 WebAPI 版本这个班 https aspnet codeplex com SourceControl changeset view dd207952fa86 Samples WebApi Namesp
  • 使用 C# 动态创建按钮并按预定义的顺序放置它们

    NET 4 5 C 创建 Windows 窗体 我想动态创建和添加按钮并为其分配单击事件 但希望它们以特定的方式动态放置 就像图像一样 我的问题是如何以上述方式动态放置按钮 即 4x4 格式 一行 4 个按钮 4 列 但行数不受限制 是否可

随机推荐

  • 【laravel5.6】The Process class relies on proc_open, which is not available on your PHP installation....

    部署服务器的时候 使用composer来安装依赖 遇到了 解决办法 在php ini中 找到disable functions选项 看看后面是否有proc open函数被禁用了 如果有的话 去掉即可 转载于 https www cnblog
  • Object.setPrototypeOf()

    Object setPrototypeOf 子对象 父对象 运行结束后 子对象 proto 指向 父对象 setPrototypeOf就是更换对象的 原型对象
  • 矩阵求导常用公式

    矩阵求导常用公式 1 引言 2 向量的导数 2 1 向量对标量求导 Vector by scalar 2 2 标量对向量求导 Scalar by vector 2 3 向量对向量求导 Vector by vector 3 矩阵的导数 3 1
  • 2022-05-14 Unity核心7——2D动画

    文章目录 一 序列帧动画 二 骨骼动画 2D Animation 三 反向动力学 IK 四 换装 五 骨骼动画 Spine 一 序列帧动画 一 什么是序列帧动画 我们最常见的序列帧动画就是我们看的日本动画片 以固定时间间隔按序列切换图片 就
  • 前端实现轮播图

    提示 实现轮播图效果有三种实现方式 一是通过纯css实现 二是通过jQuery实现 三是通过swiper插件实现 tips 可以用自己爱豆的图片 感觉简直不要太好 目录 前言 一 HTML部分 二 JS部分 提示 layer插件 盒子阴影
  • 机器学习或者机器视觉代码讲解视频教程

    当涉及到机器学习和机器视觉的代码讲解的视频教程时 以下是一些常见的在线教育平台和资源 提供了详细的代码讲解 Coursera https www coursera org Coursera上有一些知名的机器学习和计算机视觉课程 例如Andr
  • 小米手机上锁BL锁方法

    1 确保手机处于开发者模式 已打开USB调试 同时按住开机键 音量下键进入fastboot模式 使用usb数据线连接电脑 2 下载官方解锁工具miflash unlock xxxxxxxx zip 3 将miflash unlock xxx
  • NO.0 区块链,之我见前言

    区块链这个词 想必大家不会陌生 在如今爆炸式的信息时代 时不时的会在某个新闻推送 某个朋友圈分享 某个头条等直接或间接 主动或被动的有所耳闻 鉴于本人从事计算机软件开发方面职业的关系 时常会有一些朋友来问我一些关于区块链 比特币 ICO 交
  • 测试用例方法边界值

    测试用例方法边界值 什么是边界值方法 等价类重点是整体是否有效 边界值更多关注数值边界是否有效 边界值编写方法分析思路 1 找到符号产品需求的数值范围 2 确定有效的数值范围 3 根据有效的数值范围查找无效的数值范围 4 编写数值范围对应的
  • APK反编译之一:基础知识

    APK反编译之一 基础知识 本人接触不久 有错误望请各位神牛不吝赐教 仅仅希望把自己这段时间研究的东西分享一下 如果可以帮助到有需要的童鞋万感荣幸 欢迎评论转载 但请加上转载来源谢谢 请尊重开发者劳动成果 请勿用于非法用途 作者 lpohv
  • 自学Java没学历可以找到工作吗?

    除非技术真的diao 炸 天 否则大概率是找不到的 低学历能自学编程的人大有人在 你在搜索引擎上一查 低学历自学编程改变自身命运的不胜枚举 但无一不例外的 每个求学者的叙述都透漏着心酸 艰难困苦 披荆斩棘 这些词 说来容易 听来简单 但真正
  • ctfshow web由一道题的思路实现通杀

    ctfshow萌新计划 根据web1的几个解法思路我实现了对后面几道题的通杀 仔细想想感觉对于我这样的新手来说这几题还不错 题目一 web1 代码很安全 没有漏洞 打开题目很显然这一题考察的是代码审计 我们把代码粘贴下来审计一波
  • C#IList与List区别[转]

    首先IList 泛型接口是 ICollection 泛型接口的子代 并且是所有泛型列表的基接口 它仅仅是所有泛型类型的接口 并没有太多方法可以方便实用 如果仅仅是作为集合数据的承载体 确实 IList
  • pg_stat_statement如何安装部署使用

    pg stat statements模块提供一种跟踪执行统计服务器执行的所有SQL语句的手段 该模块默认是不开启的 如果需要开启需要我们手动对其进进行编译安装 修改配置文件并重启数据库 并在使用前手动载入该模块 1 手动对pg stat s
  • 离线强化学习(Offline RL)系列3: (算法篇)策略约束-BCQ算法详解与实现

    更新日志 论文信息 Off Policy Deep Reinforcement Learning without Exploration Github 本文主要介绍的是连续空间状态下的策略约束的BCQ算法 作者首先就offline RL中容
  • 软件质量属性

    质量特性 质量子特性 功能性 适宜性 准确性 互用性 依从性 安全性 可靠性 成熟型 容错性 可恢复性 可用性 可理解性 易学性 可操作性 效率 时间特性 资源特性 可维护性 可分析性 可修改性 稳定性 可测试性 可移植性 适应性 易安装性
  • Backtrader量化&回测10——取消预加载,读取自定义的可迭代数据

    文章目录 各模块解释 1 获取K线数据 2 可迭代数据类 3 策略模块 示例代码 从这一部分开始 我们将不会再聚焦于基本的操作细节上 而是更多的做一些有特点的修改 or 魔改 这篇博客记录了 不进行预加载数据 而是实时加载数据的操作 各模块
  • 靠着“反转”设计,这些短视频火了

    不知从何时开始 在那些爆火的短视频中 出现了这样一类作品 开头看似平平无奇 一切正常 突然惊现神转折 给了观众一个措手不及 而这种措手不及也大大提升了观众对此类视频的强烈兴趣 在短短15s到60s的体量内 反转 设计凭借出人意料的戏剧化特性
  • 华为云鲲鹏云服务器系列的规格,鲲鹏云服务器系列规格

    鲲鹏云服务器系列规格 内容精选 换一换 华为云帮助中心 为用户提供产品简介 价格说明 购买指南 用户指南 API参考 最佳实践 常见问题 视频帮助等技术文档 帮助您快速上手使用华为云服务 介绍在执行扩容操作有一定的限制 用户需要在扩容前充分
  • C# Newtonsoft.Json object 转 json 为空

    问题 使用 Newtonsoft Json 框架 object 转 json 发现用 internal 修饰的属性 不能被转json JsonConvert SerializeObject obj 例如 internal sealed cl