JSON.NET无法处理简单的数组反序列化?

2024-02-28

我创建了一个带有一个字段的简单类。class Test{int value;}

如果我使用“保留引用”功能并将其设置为“全部”(即对象和数组),那么当我简单地序列化 Test 对象数组时,它会被序列化为带有特殊“$values”成员的 JSON 对象与数组值,以及预期的“$id”属性一起保留数组引用。这很好,但整个事情再次在反序列化时中断。

单步查看源代码,我发现这只是因为测试“IsReadOnlyOrFixedSize“是真的,它树立了一个标志”createdFromNonDefaultConstructor" 为 true,这甚至没有任何意义,因为虽然它是一个固定大小的数组,但它是从默认构造函数创建的,除非它将任何固定大小的数组构造函数视为非默认构造函数。底线是它应该能够处理如此基本的事情,但它抛出了这个错误:“Cannot preserve reference to array or readonly list, or list created from a non-default constructor".

如何反序列化基本数组,同时保留 JSON.NET 中的所有引用而不出现错误?


遇到同样的问题,我用过List<T>代替T[]要解决这个问题。

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

JSON.NET无法处理简单的数组反序列化? 的相关文章

  • 静态/强类型和重构

    在我看来 静态 强类型编程语言最宝贵的一点是它有助于重构 如果 当你更改任何 API 时 编译器会告诉你该更改破坏了哪些内容 我可以想象用运行时 弱类型语言编写代码 但我无法想象没有编译器帮助的重构 我无法想象在没有重构的情况下编写数万行代
  • Angular JS 中的数组

    我是 Angular JS 新手 我正在将元素推送到数组中 然后想使用 ng repeat 在 html 中显示 scope groupedMedia Adding elements through a for loop scope gro
  • 具有恒定长度的 System.arraycopy

    我正在玩 JMH http openjdk java net projects code tools jmh http openjdk java net projects code tools jmh 我偶然发现了一个奇怪的结果 我正在对制
  • 将 NumPy 数组按元素映射到更多维度的数组

    我想要地图anumpy array从 NxM 到 NxMx3 其中三个元素的向量是原始条目的函数 lambda x f1 x f2 x f3 x 然而 像这样的事情numpy vectorize不允许改变尺寸 当然 我可以创建一个零数组并进
  • 重新排列数组键 php [重复]

    这个问题在这里已经有答案了 我有这个数组 Array 15 gt 13 1 16 gt Mark one answer 19 gt You see a car on the hard shoulder of a motorway with
  • VBA中的字符串是可以迭代的数组吗?

    VBA中字符串是数组吗 例如 我可以像在 C C 中那样迭代它吗 做这样的事情 char myArray 10 for int i 0 i lt length i cout lt lt myArray i VBA 中的等价物是什么 它的行为
  • Minizinc:生成有效的转变

    希望有人能帮助我解决这个问题 最初的问题是生成有效的班次 如下所述 我有这样的数组 m m m o o l l m m m l m m m 具有固定长度 S 其中 m 是工作 o 是办公室 我自由了 我需要确保至少每 6m 就有两个 l 在
  • 更改API数据输出的布局

    我是 API 集成和 PHP 的新手 我最近将 VIN 解码器集成到我的应用程序中 在输入框中输入车辆的 VIN 选择提交 然后就会显示 API 数据库中有关该车辆的所有信息 数据存储为关联数组 其中包含类别及其相应元素 例如 对于 VIN
  • 我可以让这个 Ruby 代码更快并且/或使用更少的内存吗?

    我有一个Array of StringRuby 中的对象由如下单词组成 animals cat horse dog cat dog bird dog sheep chicken cow 我想将其转换为另一个Array of String对象
  • JS:连接数组的数组

    我如何在数组的每个子成员和数组本身上使用 Array Join 来分隔父数组的元素 以及子数组的每个元素 let arr 1 2 3 4 5 6 console log arr join Output is 1 2 3 4 5 6 Pseu
  • 删除二维数组C++[关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 这两种释放二维数组的方法是否相似 int M new int 5 for int i 0 i lt 5 i M i new int 3 fo
  • 如何创建没有循环关系的树形表?

    CREATE TABLE TREE node1 id UUID REFERENCES nodes object id NOT NULL node2 id UUID REFERENCES nodes object id NOT NULL CO
  • Swift 使用哪种通用排序算法?它在排序数据上表现不佳

    我一直在挑选和探索 Swift 标准库sort 其函数为Array类型 令我惊讶的是 我注意到它在已经排序的数据上表现不佳 对数组进行排序Int打乱顺序似乎比对已经排序的同一个数组进行排序快 5 倍 对已打乱顺序的对象数组进行排序比对已按排
  • 序列化对象以进行单元测试

    假设在单元测试中我需要一个对象 其中所有 50 个字段都设置了一些值 我不想手动设置所有这些字段 因为这需要时间而且很烦人 不知何故 我需要获得一个实例 其中所有字段都由一些非空值初始化 我有一个想法 如果我要调试一些代码 在某个时候我会得
  • 为什么这个二维指针表示法有效,而另一个则无效[重复]

    这个问题在这里已经有答案了 这里我编写了一段代码来打印 3x3 矩阵的对角线值之和 这里我必须将矩阵传递给函数 矩阵被传递给指针数组 代码可以工作 但问题是我必须编写参数的方式如下 int mat 3 以下导致程序崩溃 int mat 3
  • Arrayadapter.getcount 空点异常

    我得到以下堆栈跟踪 下面是完整的副本 这几乎没有或根本没有表明大型应用程序中出现错误时的位置 并且用户反馈除了 崩溃 之外什么也没有 我能做些什么来进一步查明这一点吗 java lang NullPointerException at an
  • 在 C 中通过引用传递数组

    我是 C 新手 我有一个疑问 由于 C 函数创建其参数的本地副本 我想知道为什么以下代码按预期工作 void function int array array 0 4 array 1 5 array 2 6 int main int arr
  • 从零开始的 numpy 形状意味着什么

    好的 我发现数组的形状中可以包含 0 对于将 0 作为唯一维度的情况 这对我来说是有意义的 它是一个空数组 np zeros 0 但如果你有这样的情况 np zeros 0 100 让我很困惑 为什么这么定义呢 据我所知 这只是表达空数组的
  • 使用 json_encode() 函数在 PHP 数组中生成 JSON 键值对

    我正在尝试以特定语法获取 JSON 输出 这是我的代码 ss array 1 jpg 2 jpg dates array eu gt 59 99 us gt 39 99 array1 array name gt game1 publishe
  • 将数组排序为第一个最小值、第一个最大值、第二个最小值、第二个最大值等

    编写一个JS程序 返回一个数组 其中第一个元素是第一个最小值 第二个元素是第一个最大值 依此类推 该程序包含一个函数 该函数接受一个参数 一个数组 该函数根据要求返回数组 输入示例 array 2 4 7 1 3 8 9 预期输出 1 9

随机推荐

  • 更改为 .gitattributes 后 Git 重新签出文件

    我有一个存储库 其中包含一个错误地以 LF 行结尾提交的文件 但它需要有 CRLF 行结尾 为了解决这个问题 我添加了一个 gitattributes 文件以在签出时强制执行正确的行结尾 这似乎解决了签出新存储库时的问题 但现有的签出拒绝更
  • 使用 webpack 在 Laravel 5 中将插件安装到 CKEditor 5

    我在将插件安装到集成到 Laravel 5 6 的 CKEditor 时遇到了一个小问题 根据 CKEditor 文档的集成指南 我能够添加 ckeditor ckeditor5 build classic https www npmjs
  • WordPress wp_enqueue_script 不工作

    我正在开发一个主题并尝试让 wp enqueue script 工作 奇怪的是 什么也没有出现 它没有任何作用 这是我的设置 在functions php中我有 function named scripts global named opt
  • VBA创建对象

    自 1 月 10 日起 我就被困在这条代码线上 我在一封电子邮件中收到了它 我发现我必须学习课程模块 所以我做了 现在又回来询问新的基础 代码行是 严重警告 您必须转到 VBE 中的 工具 gt 参考 并激活Microsoft WinHTT
  • SSIS 顺序处理

    我在同一数据流任务中有 5 个独立的数据流 每个数据流都有源和目的地 我怎样才能让它们按顺序运行 它们似乎并行运行 我可能会在不同的数据流任务中执行此操作 但我怎样才能在单个数据流任务中做到这一点 同一任务中不要有独立的数据流 我知道导入
  • 如何使用 scanf() 获取任意数量的整数? [关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 该程序采用任意数量的整数作为输入 并
  • Swift 中采用类型名称的通用函数

    在 C 中 可以通过指定类型来调用泛型方法 public T f
  • iOS 8 今天的小部件在一段时间后停止工作

    我为德国冰球联赛 DEL 制作了一个今日小部件 我正在从我们的服务器加载下一个游戏并在 tableView 中显示它们 加载过程在建议的方法 widgetPerformUpdateWithCompletionHandler 中启动 最初我在
  • 读取 utf-8 编码文件时,Path.read_text(pathlib)出现意外结果

    今天我了解到open filename read 我们不能指望绑定到隐藏文件对象的资源会立即返回 尽管我在我的系统上观察到了这一点 看接受的答案 https stackoverflow com a 7409814 2932052问题的读取整
  • 无法自动装配字段

    我在用着Hibernate 4 Spring MVC 4当我开始时Apache Tomcat Server 8我收到这个错误 Error creating bean with name welcome Injection of autowi
  • 如何将 netcat 中的 tcp 数据放入变量中?

    我已经用通常的方式设置了服务器nc lk
  • 如何在 jQuery 中向数组添加项目?

    var list getJSON json js function data each data function i item console log item text list push item text console log l
  • 如何在本机反应中同步两个滚动视图?

    我的要求是创建一个具有固定标题和第一列的表格 表格数据将在水平和垂直方向上滚动 for this I have used 3 scrollviews following gif will make it clear 第一个滚动视图是标题名称
  • Laravel Blade @foreach 不工作

    我正在学习 Laravel 4 到目前为止一切顺利 但由于某些奇怪的原因 blade 的 foreach 似乎不适用于简单的查询 我的代码是 Route Route get users function users User all ret
  • 如何在大小写敏感模式下在 gfortran 中编译?

    是否可以编译 fortran 90 95 代码gfortran with 区分大小写 我搜索了手册 但找不到任何可以给 gfortran 的标志或选项以使其区分大小写 我希望大写和小写的变量不同 那么 有可能吗 没有这样的标志或选项 当然
  • Oozie shell 操作未作为提交用户运行

    我编写了一个 Oozie 工作流程 它运行 BASH shell 脚本来执行一些配置单元查询并对结果执行一些操作 该脚本运行但在访问某些 HDFS 数据时抛出权限错误 提交 Oozie 工作流的用户具有权限 但脚本以纱线用户身份运行 是否可
  • Javascript V8 Torque Engine 错误加载二进制数据

    我们使用 opentype js 加载字体文件 并在我们的代码 V8 引擎或 Chromium 中发现了一个错误 该错误返回以下结果 DataView getInt16 as 65536低于或高于应有的水平 这种情况很少发生 0 25 但对
  • 'touchstart' 事件是否有相当于 e.PageX 位置的点击事件?

    我正在尝试使用 jQuery 获取与 live 功能一起使用的 touchstart 事件的 X 位置 I e box live touchstart function e var xPos e PageX 现在 这确实适用于 点击 事件
  • Passport本地策略和cURL

    我想使用 CURL 测试我的 node js Express Passport js 测试应用程序 RESTful 我的代码 var express require express var routes require routes var
  • JSON.NET无法处理简单的数组反序列化?

    我创建了一个带有一个字段的简单类 class Test int value 如果我使用 保留引用 功能并将其设置为 全部 即对象和数组 那么当我简单地序列化 Test 对象数组时 它会被序列化为带有特殊 values 成员的 JSON 对象