.NET Core 项目与 .NET Framework 中为 System.Data.DataTable 生成的 JSON 的变化

2024-01-22

下面的程序在 .NET Core 项目与 .NET Framework 应用程序中运行时生成不同的 JSON。

Code

class Program
{
    internal static readonly MediaTypeFormatter DefaultFormatter = new JsonMediaTypeFormatter
    {
        UseDataContractJsonSerializer = false,
        SerializerSettings =
        {
            NullValueHandling = NullValueHandling.Ignore,
            DateTimeZoneHandling = DateTimeZoneHandling.Utc,
            DateFormatHandling = DateFormatHandling.IsoDateFormat
        }
    };

    private static DataTable BuildTestDataTable()
    {
        var testDataTable = new DataTable();
        testDataTable.Columns.Add("Label", typeof(string));
        testDataTable.Columns.Add("Metric", typeof(decimal));
        testDataTable.Rows.Add("A", 10);
        testDataTable.Rows.Add("B", 20);
        return testDataTable;
    }

    static void Main(string[] args)
    {
        DataTable table = BuildTestDataTable();

        ObjectContent oc = new ObjectContent(table.GetType(), table, DefaultFormatter);

        Console.WriteLine(oc.ReadAsStringAsync().Result);

        Console.ReadKey();
    }
}

.Net框架:

[{"Label":"A","Metric":10.0},{"Label":"B","Metric":20.0}]

.Net核心:

{
    "DataTable.RemotingVersion": {
        "_Major": 2,
        "_Minor": 0,
        "_Build": -1,
        "_Revision": -1
    },
    "XmlSchema": "<?xml version=\"1.0\" encoding=\"utf-16\"?>\r\n<xs:schema xmlns=\"\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\">\r\n  <xs:element name=\"Table1\">\r\n    <xs:complexType>\r\n      <xs:sequence>\r\n        <xs:element name=\"Label\" type=\"xs:string\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n        <xs:element name=\"Metric\" type=\"xs:decimal\" msdata:targetNamespace=\"\" minOccurs=\"0\" />\r\n      </xs:sequence>\r\n    </xs:complexType>\r\n  </xs:element>\r\n  <xs:element name=\"tmpDataSet\" msdata:IsDataSet=\"true\" msdata:MainDataTable=\"Table1\" msdata:UseCurrentLocale=\"true\">\r\n    <xs:complexType>\r\n      <xs:choice minOccurs=\"0\" maxOccurs=\"unbounded\" />\r\n    </xs:complexType>\r\n  </xs:element>\r\n</xs:schema>",
    "XmlDiffGram": "<diffgr:diffgram xmlns:msdata=\"urn:schemas-microsoft-com:xml-msdata\" xmlns:diffgr=\"urn:schemas-microsoft-com:xml-diffgram-v1\">\r\n  <tmpDataSet>\r\n    <Table1 diffgr:id=\"Table11\" msdata:rowOrder=\"0\" diffgr:hasChanges=\"inserted\">\r\n      <Label>A</Label>\r\n      <Metric>10</Metric>\r\n    </Table1>\r\n    <Table1 diffgr:id=\"Table12\" msdata:rowOrder=\"1\" diffgr:hasChanges=\"inserted\">\r\n      <Label>B</Label>\r\n      <Metric>20</Metric>\r\n    </Table1>\r\n  </tmpDataSet>\r\n</diffgr:diffgram>"
}

有人可以解释一下造成这种情况的原因吗?这是否是故意的差异?


As per https://github.com/JamesNK/Newtonsoft.Json/issues/1383 https://github.com/JamesNK/Newtonsoft.Json/issues/1383

它是netstandard1.5,但netstandard1.3是Json.NET支持的最高版本。当最终添加 netstandard2.0 版本时,我将添加对它的支持。

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

.NET Core 项目与 .NET Framework 中为 System.Data.DataTable 生成的 JSON 的变化 的相关文章

  • BASIC 中的 C 语言中的 PeekInt、PokeInt、Peek、Poke 等效项

    我想知道该命令的等效项是什么Peek and Poke 基本和其他变体 用 C 语言 类似PeekInt PokeInt 整数 涉及内存条的东西 我知道在 C 语言中有很多方法可以做到这一点 我正在尝试将基本程序移植到 C 语言 这只是使用
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 无限循环与无限递归。两者都是未定义的吗?

    无副作用的无限循环是未定义的行为 看here https coliru stacked crooked com view id 24e0a58778f67cd4举个例子参考参数 https en cppreference com w cpp
  • 对类 static constexpr 结构的未定义引用,g++ 与 clang

    这是我的代码 a cp p struct int2 int x y struct Foo static constexpr int bar1 1 static constexpr int2 bar2 1 2 int foo1 return
  • 方程“a + bx = c + dy”的积分解

    在等式中a bx c dy 所有变量都是整数 a b c and d是已知的 我如何找到整体解决方案x and y 如果我的想法是正确的 将会有无限多个解 由最小公倍数分隔b and d 但我只需要一个解决方案 我可以计算其余的 这是一个例
  • 人脸 API DetectAsync 错误

    我想创建一个简单的程序来使用 Microsoft Azure Face API 和 Visual Studio 2015 检测人脸 遵循 https social technet microsoft com wiki contents ar
  • 如何获取 EF 中与组合(键/值)列表匹配的记录?

    我有一个数据库表 其中包含每个用户 年份组合的记录 如何使用 EF 和用户 ID 年份组合列表从数据库获取数据 组合示例 UserId Year 1 2015 1 2016 1 2018 12 2016 12 2019 3 2015 91
  • WcfSvcHost 的跨域异常

    对于另一个跨域问题 我深表歉意 我一整天都在与这个问题作斗争 现在已经到了沸腾的地步 我有一个 Silverlight 应用程序项目 SLApp1 一个用于托管 Silverlight SLApp1 Web 的 Web 项目和 WCF 项目
  • 为什么这个字符串用AesCryptoServiceProvider第二次解密时不相等?

    我在 C VS2012 NET 4 5 中的文本加密和解密方面遇到问题 具体来说 当我加密并随后解密字符串时 输出与输入不同 然而 奇怪的是 如果我复制加密的输出并将其硬编码为字符串文字 解密就会起作用 以下代码示例说明了该问题 我究竟做错
  • 两个类可以使用 C++ 互相查看吗?

    所以我有一个 A 类 我想在其中调用一些 B 类函数 所以我包括 b h 但是 在 B 类中 我想调用 A 类函数 如果我包含 a h 它最终会陷入无限循环 对吗 我能做什么呢 仅将成员函数声明放在头文件 h 中 并将成员函数定义放在实现文
  • 使用 Jade 评估自定义 javascript 方法 (CircularJSON)

    我想通过 Jade 将一个对象解析为客户端 JavaScript 通常这会起作用 script var object JSON parse JSON stringify object but my object is circular ht
  • 如何在 Linq to SQL 中使用distinct 和 group by

    我正在尝试将以下 sql 转换为 Linq 2 SQL select groupId count distinct userId from processroundissueinstance group by groupId 这是我的代码
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 使用特定参数从 SQL 数据库填充组合框

    我在使用参数从 sql server 获取特定值时遇到问题 任何人都可以解释一下为什么它在 winfom 上工作但在 wpf 上不起作用以及我如何修复它 我的代码 private void UpdateItems COMBOBOX1 Ite
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l
  • php 数组中出现意外的 json 输出结构

    我正在尝试转换动态数据 如何从 PHP 获取此 JSON JSON 122240cb 253c 4046 adcd ae81266709a6 item 0 3 这就是我所做的 但它不起作用 PHP json array 122240cb 2

随机推荐

  • Spring AOP 切入点,方法名以 get 开头

    我正在尝试为 Spring AOP 实现切入点 所有的方法都像getXXXX应该被记录 我尝试了以下方法 但要么抛出异常 要么不触发 1st try Pointcut within net services get private void
  • 允许 Django 代理中间件中的逐跳标头

    我需要在 Django 中实现 HTTP 代理 我的 Google safari 引导我找到了一个名为django webproxy http code google com p django webproxy 虽然不再维护 但非常简单 大
  • react-native cli:启动时出错

    我按照说明安装了react native 但是 npm start 我出现以下错误 ERROR Metro Bundler can t listen on port 8081 Loading dependency graph npm ERR
  • 从控制台应用程序退出的正确方法[重复]

    这个问题在这里已经有答案了 我读过一些书here https stackoverflow com questions 12180512 exit from a console application in c sharp and here
  • React hooks 状态不使用最新版本

    我有下面的代码 我想在其中创建标签列表 在此示例中 我正在获取标签列表setAllTags 然后是一些可用的标签setAvailableTags 那么我遇到的问题是当setAvailableTags 运行它将删除在中获取的标签setAllT
  • 将 SQL 查询映射到 Nhibernate 中的业务对象

    我想将 SQL 查询映射到Business object using Nhibernate 员工表中有很多字段 但我只得到三个字段 并且只想映射那些字段 这是我的sql查询
  • 移动并修复手机 iOS 上录制的视频的 moovatom

    问题是如何找到并移动 iOS 设备上录制的 mov 文件的 moov 原子 以便可以通过 http 进行流式传输 有一种方法可以做到这一点 但这需要将其导出到文件 理论上这会让您复制整个文件 然后您就可以流式传输它 还有其他方法可以做到这一
  • Flask Admin 不显示所有字段

    我有这样的模型 class User db Model tablename users table args mysql engine InnoDB mysql charset utf8 id db Column db Integer pr
  • Android键盘滑动动画

    我对 Android 中的动画几乎没有 阅读 没有 经验 但想在键盘出现时实现动画 实际上 整个 Activity 看起来都在向上滑动 就像键盘位于 Activity 下方并将其向上推一样 而不是仅向上移动到所选的位置EditText 有谁
  • 猫鼬聚合框架中按日期排序

    我正在使用 mongoose 开发一个 nodejs mongodb 项目 现在我遇到了一个我不知道答案的问题 我正在使用聚合框架来获取分组结果 分组是在不包括时间数据字段的日期完成的 例如 2013 02 06 代码如下所示 MyMode
  • 在 CTE 内设置变量

    这是我第一次使用 SQLServer 2012 我的代码不起作用 CREATE PROCEDURE ReadCodeBuffer gint bigint pres tinyint level bigint quantity smallint
  • Python 需要 GIL。但 Jython 和 IronPython 没有。为什么?

    为什么您可以运行 Jython 和 IronPython 而无需 GIL 但 Python CPython 需要 GIL 解释器的某些部分不是线程安全的 尽管主要是因为通过大量使用锁使它们全部线程安全会极大地减慢单线程速度 source h
  • 使用 Leak Canary 防止误报

    我们观察到 Leak Canary 有很多误报 即 Leak Canary 检测到存在泄漏 但随后返回消息 LeakCanary NO LEAK FOUND 我认为这是因为GC没有及时声明对象 我们可以采取什么措施来减少这些误报 带过滤器查
  • C#,检测Windows上选定的文本?

    我会制作一个类似谷歌工具栏翻译功能的工具 但它是针对桌面的 我想做的是 在任何应用程序 word pdf liveMessenger等 中突出显示文本 并通过谷歌翻译API进行翻译 作为工具提示返回 我搜索了有关监视文本的msdn 我只发现
  • Imagemagick“mogrify -strip”-更改图像?

    In my 最后一个问题 https stackoverflow com questions 24683912 imagemagick depth convert询问转换和位深度 所以 这样做 convert in png out eps
  • 各种 .NET Framework 版本的操作系统兼容性

    每个 Net 框架的最低操作系统要求是什么 例如 对于哪个版本不可能运行每个操作系统 视窗95 视窗98 视窗98SE 视窗ME Windows NT 3 x 视窗NT 4 视窗2000 我相信所有 Net 框架都与 XP Vista Wi
  • 如何使用 Eclipse RCP 的打印选项打印 jasper 报告?

    我的问题 我在 Eclipse RCP 应用程序中有一个 ViewerComposite 它显示集成到其中的 Jasper Report jrxml 此 ViewerComposite 中显示的报告可以导出为 PDF RTF XML jrx
  • Krakenex API 多对查询

    我正在尝试使用 Krakenex python 库一次查询多个货币对的订单簿 当我对单一货币执行此操作时 这是有效的 如下所示 con krakenex API con load key kraken key con query publi
  • 创建一个处理 DatabaseFactory 的 DbContext 以更轻松地使用 DapperExtensions

    这几天我尝试使用一些基本的 CRUD 函数创建一个抽象的基础存储库简洁的扩展 https github com tmsmith Dapper Extensions 但作为示例给出的代码使用 SqlConnection 来连接到 SQL Se
  • .NET Core 项目与 .NET Framework 中为 System.Data.DataTable 生成的 JSON 的变化

    下面的程序在 NET Core 项目与 NET Framework 应用程序中运行时生成不同的 JSON Code class Program internal static readonly MediaTypeFormatter Defa