使用 JSON.net 序列化 Dictionary

2023-11-26

我正在尝试使用 JSON.net 序列化字典。

Using

JsonConvert.SerializeObject(theDict);

这是我的结果

{
  "1": {
    "Blah1": false,
    "Blah2": false,
    "Blah3": "None",
    "Blah4": false
  },
  "2": {
    "Blah1": false,
    "Blah2": false,
    "Blah3": "None",
    "Blah4": false
  },
  "3": {
    "Blah1": false,
    "Blah2": false,
    "Blah3": "None",
    "Blah4": false
  },
  ...
  ...
  ...
}  

有没有办法序列化这个字典,以便将键呈现为有效的 JavaScript 变量?

我也对序列化字典的其他策略持开放态度。


这是生成 JSON 的正确方法Dictionary<int,...>。原因是JSON requires所有键都是带引号的字符串文字.

JS 在这方面稍微宽松一些:但是 JSON 是 JS 对象字面量的受限形式。任何状况之下,JavaScript 中的所有属性名称都是字符串。 (它们根据需要隐式转换。)因此,({1: 2})["1"]) and ({"1": 2})[1])在 JS 中同样有效(并且两者都评估为2), 但只有{"1": 2}是有效的 JSON。

如果要反序列化回的目标类型是Dictionary<int,...>然后它会自动处理键中的转换int, IIRC.

我不知道有什么方法可以让 JSON.NET 直接生成非 JSON ;-) 它可以通过循环顶级构造来完成,例如每个KeyValuePair<int,...>并为每个单独的条目生成 JSON 以及“修改后的”JS 代码:

foreach (var p in dict) {
    var k = p.Key;
    var v = p.Value;
    Emit(string.Format(
        "var name{0} = {1};",
        k, JsonConvert.SerializeObject(v)));
}

Where Emit是用来收集输出的任何东西...不过,如果可能的话,我建议“只是普通的 JSON”。

快乐编码。

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

使用 JSON.net 序列化 Dictionary? 的相关文章

  • CSV 提供的数据源第一列中存在奇数字符

    我有一个 CSV 文件 已添加到 Visual Studio 单元测试项目中 它有七列 如下所示 assessmentitemid reviewer1 reviewer2 reviewer3 reviewer4 reviewer5 revi
  • `uint_fast32_t` 保证至少与 `int` 一样宽吗?

    C 标准规定整数操作数小于int将晋升为int在对它们执行任何算术运算之前 因此 对两个小于的无符号值进行运算int将使用有符号而不是无符号的数学来执行 如果需要确保使用无符号数学对 32 位操作数执行操作 例如 将两个乘积可能超过 2 的
  • 如何在 Typescript 中使用默认值定义可选构造函数参数

    是否可以有带有默认值的可选构造函数参数 如下所示 export class Test constructor private foo string foo private bar string bar 这给了我以下错误 参数不能有问号和初始
  • JavaScript 中什么可能会打乱我的查询字符串参数构造函数?

    所以这可能是一个很长的机会 但我完全不知道可能导致这个问题的原因 我正在提供一个客户端 JavaScript 它解析嵌入的页面上的某些参数 使用这些参数构建 URL 并使用该 URL 将 iframe 注入到页面中 如下所示 var que
  • JavaScript Element.requestFullscreen() 未定义

    如果我如何使用代码element requestFullscreen 是未定义的 if element webkitRequestFullScreen element webkitRequestFullScreen If requestFu
  • close 似乎不适用于 WebSocket

    我有这个简单的 JavaScript 代码 window ws new WebSocket ws 127 0 0 1 8000 ws onopen function ws send hello Ruby 中的服务器如下所示 require
  • 基本 WinForm KeyDown 事件处理

    我正在使用 WinForms 我已经为KeyDown主窗体的事件 从而调用按钮的Click事件处理程序 The Click调用的事件处理程序取决于按下的特定键 如果用户单击该按钮而不是使用该键 然后随后尝试使用该键 则该键 例如向下箭头 将
  • Facebook C# SDK 从 V5 迁移到 V6

    我正在尝试从 SDK 的 V5 3 2 迁移到 V6 我有一个 ASP NET 4 0 Canvas 应用程序 我注意到现在不再有 facebook web dll 我以前使用过 并找到了以下信息 gt 删除 Facebook Web dl
  • 处理流星中的长服务器端计算

    我正在使用 jimp https www npmjs com package jimp https www npmjs com package jimp 在meteor JS中生成图像服务器端 换句话说 我正在使用递归算法 计算 图像的像素
  • 将渲染后效果应用于 XNA 中的 SpriteBatch

    在 XNA 框架中 有没有一种方法可以使用典型的 SpriteBatch 方法渲染 2D 场景 然后在渲染该帧后将效果应用于整个图像 例如 模糊 棕褐色甚至使整个事情看起来像旧电影胶片 带有颗粒 灰尘 线条等 是的 您要做的就是将渲染目标设
  • 什么更快?

    如果我们有以下 2 个 C 代码片段可以完成相同的任务 int a b somenumber while b gt 0 a b 3 b 3 or int b somenumber while b gt 0 int a b 3 b 3 我对计
  • 有没有办法使用 JavaScript 发送 CoAP 命令?

    我只是想知道是否有一种方法可以在浏览器中发送 CoAP 查询 使用 JavaScript 但不能使用 node js Thanks 不幸的是 这不可能直接实现 出于安全原因 Web 浏览器不为 UDP 套接字提供任何 JavaScript
  • 如何使用 jQuery 隐藏和显示 CKEditor?

    以下代码应允许隐藏 显示 CKEditor 表单 a Hide a a Show a
  • 有没有工具可以检测 Visual C++ 6.0 上的缓冲区溢出? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 由于堆问题 我一直遇到崩溃问题 所以我猜想某个地方发生了缓冲区溢出 我如何检测它 I use Compuware 边界检查器 http w
  • static_assert 有什么作用,你会用它做什么?

    你能举个例子吗static assert C 11 会优雅地解决手头的问题吗 我熟悉运行时assert 我应该选择什么时候static assert 超过常规assert 另外 在boost有一种东西叫做BOOST STATIC ASSER
  • Javascript:为什么我需要在 for 循环中声明 var i = 0?

    我正在做一个需要递归的问题 用于计算加起来达到一定数量的硬币组合 有效的解决方案如下 困扰我几个小时的一件事是 当我没有在 for 循环中声明 var i 0 时 它不起作用 据我了解 当我在 for 循环中声明 var 时 它会保留在该范
  • Json 对象 - 获取键和值

    我是 JSON 的新手 所以 如果这是一个非常基本的疑问 请不要责骂我 我有一个 JSON 对象引用 我想获取 Key 对象只有一个键值对 我如何在 Java 中获得它 您可以使用jsonObject keys 获取所有钥匙 然后您可以迭代
  • C# 以非管理员权限运行进程

    我启动了一个有关管理员权限的流程 psi Verb runas process StartInfo psi process Start 但现在这个过程必须启动另一个应用程序 但需要非管理员权限 应用程序适用于非管理员权限 我怎样才能做到这一
  • 在使用 stop_token 等待条件变量_any 时是否需要拥有锁来请求停止?

    在等待条件变量时 更改谓词状态的线程必须拥有锁 因此在唤醒期间不会错过更新 根据文档 这是必要的 即使在使用原子变量时也是如此 不过我不确定是否request stop 已经正确处理了 那么问题是 这两个选项中哪一个是正确且符合标准的呢 j
  • JsonNode findValue 不搜索子节点

    我有一个结构如下的资源 activity activity type Like activity id 123456 object id product id reference activity activity type Rating

随机推荐

  • MS Access 错误“ODBC——调用失败。转换规范的字符值无效 (#0)”

    有谁知道这个错误意味着什么或如何解决它 我使用的是 Access 2003 和 SQL2005 当尝试在特定子表单上添加记录时会出现它 Microsoft SQL Native Client 转换规范的字符值无效 0 此 MS 错误报告描述
  • 从另一个应用程序以编程方式打开 iOS 设置应用程序中的键盘设置屏幕

    我们如何以编程方式直接进入 iOS 设置应用程序的以下任何屏幕 UPDATE 正如其他用户指出的那样 此解决方案不再适用于 iOS10 如果有人知道如何使其在 iOS10 中运行 请告诉我们 iOS 要打开 您自己的应用程序的 设置 您可以
  • 运行 mocha 测试时 Babel 意外导入令牌

    其他相关问题中提供的解决方案 例如在 babelrc 中包含适当的预设 es2015 已在我的项目中实现 我有两个项目 我们称它们为 A 和 B 它们都使用 ES6 模块语法 在项目 A 中 我导入项目 B 该项目通过 npm 安装并位于
  • SQLite 与使用数字的表名有关的问题?

    我正在开发一个应用程序 它要求用户选择这样格式的年份1992 1993来自旋转器 表名也被命名为1992 1993这个想法是使用 SQL 通过这样的语句提取该表中的值选择 1992 1993 但是 当我运行模拟器时 它会抛出错误 如果我随后
  • 使用 Zend Framework 和 PHP 发送电子邮件

    我正在制作一个表单 当用户输入他们的电子邮件帐户并单击发送时 一封电子邮件将发送到他们的电子邮件帐户 我已经把一切都解决了 只是它不会将电子邮件发送到我的帐户 有人有主意吗 是否有我遗漏的配置或其他什么 这是我的控制器的示例 public
  • 覆盖 json.Marshal 使用的布局来格式化 time.Time

    在Golang中 有没有办法使通用encoding jsonMarshal 在编组时使用不同的布局time Time fields 基本上我有这个结构 s starttime time Now name ali 我想使用编码为 jsonen
  • 如何从 Windows 窗体连接到 MySQL?

    如何从 Windows 窗体连接到 MySQL 数据库 这里有大量连接字符串示例 http www connectionstrings com
  • GetProperties() 返回接口继承层次结构的所有属性

    假设以下假设的继承层次结构 public interface IA int ID get set public interface IB IA string Name get set 使用反射并进行以下调用 typeof IB GetPro
  • 如何将资源嵌入到 .NET PE 可执行文件中?

    如何在 Visual Studio 2010 的 NET PE 可移植可执行文件 中包含资源 In the 旧时光我们将创建一个资源脚本文件 wumpa rc jqueryjs RCDATA jquery js SplashLogo PNG
  • 主脑极小极大算法

    我正在尝试在 python 中实现 Donald Knuth 的密码破解算法 只需不超过 5 步 我已经多次检查了我的代码 它似乎遵循算法 如下所示 http en wikipedia org wiki Mastermind board g
  • GroupBy pandas DataFrame 并选择最常见的值

    我有一个包含三个字符串列的数据框 我知道第三列中唯一的一个值对于前两个值的每种组合都有效 为了清理数据 我必须按前两列对数据框进行分组 并为每个组合选择第三列的最常见值 My code import pandas as pd from sc
  • 使用 MySQL 将二进制转换为十进制

    我正在尝试在 MySQL 中构建一个查询 该查询连接一堆二进制字段 然后给出 DECIMAL 形式的结果 e g SELECT CONCAT setting1 setting2 setting3 AS settings 可能给了我 101
  • 为什么 onAppear() 当放置在 swiftUI 中的 NavigationView 内的元素上时会执行两次? (Xcode 12.0)

    FirstView Appeared被打印两次 当视图首次加载时一次 当选择 NavigationLink 时再次一次 import SwiftUI struct FirstView View var body some View Navi
  • Javascript .Replace 替代方案

    我正在为 eBay 编写一个模板 但是 eBay 不允许 replace 下面的代码用于翻转选项卡部分 当用户将鼠标悬停在选项卡 a 上时 相应的 div div a 变得可见 有没有一种解决方法可以让代码在不使用 replace 的情况下
  • 这个 O(N*k) 排序算法是什么?

    当工作 BrainF 最快的排序 我发现了这个算法 它是O N k 其中k是输入中的最大值 它需要 O N 额外的存储空间 物理上的类比是你有 N 堆令牌 栈的高度代表要排序的值 每个标记代表一个位 为另外 N 堆留出空间 您从每个有令牌的
  • 使用 R 从 XTS 对象中提取该月第一个工作日的回报

    我对 R 非常陌生 所以如果我在解释这个问题时出现任何术语错误 我深表歉意 我在 csv 文件中有一组每日退货数据 我已设法将其转换为 xts 对象 数据格式为 HighYield EUR MSCI World EUR 2002 01 31
  • 枚举的 XML 序列化

    我在序列化枚举值时遇到问题 这是代码 System Xml Serialization XmlRootAttribute Namespace IsNullable false public class REQUEST System Xml
  • 将图像存储到数据库 blob;从数据库检索到 Picturebox

    您好 我之前发布了此内容并获得了一些帮助 但仍然没有有效的解决方案 感谢上一个问答 我确定我的 保存到数据库 代码以及 检索到图片 代码有问题 即使我手动将图片保存在数据库中 它仍然无法检索 这是我根据网络上的 3 或 4 个示例拼凑而成的
  • 类型错误:需要一个浮点数

    无法发布图片 所以 a i 1 i 1 sin x ln x i 2 i 1 任务 需要找到a1 a2 an n 是自然的并且是给定的 这就是我尝试这样做的方式 import math a k 0 p 0 def factorial n f
  • 使用 JSON.net 序列化 Dictionary

    我正在尝试使用 JSON net 序列化字典 Using JsonConvert SerializeObject theDict 这是我的结果 1 Blah1 false Blah2 false Blah3 None Blah4 false