C# 反序列化 Json 未知键

2023-11-23

我有这个 JSON,我必须反序列化它:

{
  "homepage": "http://files.minecraftforge.net/maven/net/minecraftforge/forge/",
  "promos": {
    "1.10-latest": "12.18.0.2000",
    "1.10.2-latest": "12.18.1.2014",
    "1.10.2-recommended": "12.18.1.2011",
    "1.5.2-latest": "7.8.1.738",
    "1.5.2-recommended": "7.8.1.737",
    "1.6.1-latest": "8.9.0.775",
    "1.6.2-latest": "9.10.1.871",
    "1.6.2-recommended": "9.10.1.871",
    "1.6.3-latest": "9.11.0.878",
    "1.6.4-latest": "9.11.1.1345",
    "1.6.4-recommended": "9.11.1.1345",
    "1.7.10-latest": "10.13.4.1614",
    "1.7.10-latest-1.7.10": "10.13.2.1343",
    "1.7.10-recommended": "10.13.4.1558",
    "1.7.2-latest": "10.12.2.1147",
    "1.7.2-recommended": "10.12.2.1121",
    "1.8-latest": "11.14.4.1577",
    "1.8-recommended": "11.14.4.1563",
    "1.8.8-latest": "11.15.0.1655",
    "1.8.9-latest": "11.15.1.1902",
    "1.8.9-recommended": "11.15.1.1722",
    "1.9-latest": "12.16.0.1942",
    "1.9-recommended": "12.16.1.1887",
    "1.9.4-latest": "12.17.0.1990",
    "1.9.4-recommended": "12.17.0.1976",
    "latest": "12.18.1.2014",
    "latest-1.7.10": "10.13.2.1343",
    "recommended": "12.18.1.2011"
  }
}

在这个网站上搜索了很多,我得出了这个代码:

dynamic json = JsonConvert.DeserializeObject<Dictionary<string, string>>(data);
foreach (KeyValuePair<string, string> entry in json["promos"])
{
    MessageBox.Show(entry.Key);
    MessageBox.Show(entry.Value);
}

我需要从该 Json 中获取 Key 和 Value,但是使用这段代码,它表示第 3 行第 13 行有一个意外字符。 我尝试了很多不同的方式,但我无法同时获得价值和关键。通过一些代码,我只得到了密钥,而通过其他一些代码,我只得到了值。你能解释一下如何同时获取值和密钥吗?


您可以直接将json解析为JObject并将节点“promos”转换为Dictionary

var json = JObject.Parse(data);
var promos = json["promos"].ToObject<Dictionary<string, string>>();
foreach (var entry in promos)
{
    MessageBox.Show(entry.Key);
    MessageBox.Show(entry.Value);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 反序列化 Json 未知键 的相关文章

  • C++:无法使用scoped_allocator_adaptor传播polymorphic_allocator

    我有一个vector
  • 模板类的不明确多重继承

    我有一个真实的情况 可以总结为以下示例 template lt typename ListenerType gt struct Notifier void add listener ListenerType struct TimeListe
  • 嵌入式系统中的malloc [重复]

    这个问题在这里已经有答案了 我正在使用嵌入式系统 该应用程序在 AT91SAMxxxx 和 cortex m3 lpc17xxx 上运行 我正在研究动态内存分配 因为它会极大地改变应用程序的外观 并给我更多的力量 我认为我唯一真正的路线是为
  • FFMPEG Seeking 带来音频伪影

    我正在使用 ffmpeg 实现音频解码器 在读取音频甚至搜索已经可以工作时 我无法找到一种在搜索后清除缓冲区的方法 因此当应用程序在搜索后立即开始读取音频时 我没有任何工件 avcodec flush buffers似乎对内部缓冲区没有任何
  • 使用 Microsoft Graph API 订阅 Outlook 推送通知时出现 400 错误请求错误

    我正在尝试使用 Microsoft Graph API 创建订阅以通过推送通知获取 Outlook 电子邮件 mentions 我在用本文档 https learn microsoft com en us graph api subscri
  • 如何在我的应用程序中使用 Windows Key

    Like Windows Key E Opens a new Explorer Window And Windows Key R Displays the Run command 如何在应用程序的 KeyDown 事件中使用 Windows
  • 为什么 POSIX 允许在只读模式下超出现有文件结尾 (fseek) 进行搜索

    为什么寻找文件结尾很有用 为什么 POSIX 让我们像示例中那样在以只读方式打开的文件中进行查找 c http en cppreference com w c io fseek http en cppreference com w c io
  • 为什么禁止在 constexpr 函数中使用 goto?

    C 14 对你能做什么和不能做什么有规则constexpr功能 其中一些 没有asm 没有静态变量 看起来相当合理 但标准也不允许goto in constexpr功能 即使它允许其他控制流机制 这种区别背后的原因是什么 我以为我们已经过去
  • C# 中值类型和引用类型有什么区别? [复制]

    这个问题在这里已经有答案了 我知道一些差异 值类型存储在堆栈上 而引用类型存储在托管堆上 值类型变量直接包含它们的值 而引用变量仅包含对托管堆上创建的对象位置的引用 我错过了任何其他区别吗 如果是的话 它们是什么 请阅读 堆栈是一个实现细节
  • 使用 Google Analytics API 在 C# 中显示信息

    我一整天都在寻找一个好的解决方案 但谷歌发展得太快了 我找不到有效的解决方案 我想做的是 我有一个 Web 应用程序 它有一个管理部分 用户需要登录才能查看信息 在本节中 我想显示来自 GA 的一些数据 例如某些特定网址的综合浏览量 因为我
  • HttpClient 像浏览器一样请求

    当我通过 HttpClient 类调用网站 www livescore com 时 我总是收到错误 500 可能服务器阻止了来自 HttpClient 的请求 1 还有其他方法可以从网页获取html吗 2 如何设置标题来获取html内容 当
  • A* 之间的差异 pA = 新 A;和 A* pA = 新 A();

    在 C 中 以下两个动态对象创建之间的确切区别是什么 A pA new A A pA new A 我做了一些测试 但似乎在这两种情况下 都调用了默认构造函数 并且仅调用了它 我正在寻找性能方面的任何差异 Thanks If A是 POD 类
  • 使用 LINQ 查找列表中特定类型的第一个元素

    使用 LINQ 和 C 在元素列表中查找特定类型的第一个项目的最短表示法是什么 var first yourCollection OfType
  • Windows 10 中 Qt 桌面应用程序的缩放不当

    我正在为 Windows 10 编写一个简单的 Qt Widgets Gui 应用程序 我使用的是 Qt 5 6 0 beta 版本 我遇到的问题是它根本无法缩放到我的 Surfacebook 的屏幕上 这有点难以判断 因为 SO 缩放了图
  • 将应用程序从 Microsoft Access 迁移到 VB 或 C#.NET

    我目前正试图说服管理层需要将我们的应用程序之一移植到 NET 该应用程序已经发展成为 Access 中的一个庞然大物 SQL 后端 拥有 700 个链接表 650 个表单 子表单 130 个模块和 850 个查询 我几乎知道这样做的所有主要
  • 作为字符串的动态属性名称

    使用 DocumentDB 创建新文档时 我想设置属性名称动态地 目前我设置SomeProperty 像这样 await client CreateDocumentAsync dbs db colls x new SomeProperty
  • GDK3/GTK3窗口更新的精确定时

    我有一个使用 GTK 用 C 语言编写的应用程序 尽管该语言对于这个问题可能并不重要 这个应用程序有全屏gtk window与单个gtk drawing area 对于绘图区域 我已经通过注册了一个刻度回调gtk widget add ti
  • 方法参数内的变量赋值

    我刚刚发现 通过发现错误 你可以这样做 string s 3 int i int TryParse s hello out i returns false 使用赋值的返回值是否合法 Obviously i is but is this th
  • 如何使用 ReactiveList 以便在添加新项目时更新 UI

    我正在创建一个带有列表的 Xamarin Forms 应用程序 itemSource 是一个reactiveList 但是 向列表添加新项目不会更新 UI 这样做的正确方法是什么 列表定义 listView new ListView var
  • 如何连接字符串和常量字符?

    我需要将 hello world 放入c中 我怎样才能做到这一点 string a hello const char b world const char C string a hello const char b world a b co

随机推荐

  • 从数组填充嵌套对象?

    我有一个问题 如何从数组创建嵌套对象 IE 我有一个以下数组 var myArr foo bar baz 并需要使其成为一个对象 例如 myObj foo bar baz 我怎样才能正确地做到这一点 Use reduce var myArr
  • 如何从下载的页面中删除所有html标签[重复]

    这个问题在这里已经有答案了 我已经使用 urlopen 下载了一个页面 如何从中删除所有 html 标签 是否有任何正则表达式可以替换所有 标签 我也可以推荐美丽汤这是一个易于使用的 html 解析器 在那里你会做类似的事情 from Be
  • Wav 音频文件压缩不起作用

    是否可以在不降低采样率的情况下压缩 wav 音频文件 我有一个 256 比特率和采样率 8000Hz 的音频文件 我只想将比特率降低到 128 64 kbs 我尝试转换为 mp3 再转换回 wav ffmpeg i 输入 wav 1 mp3
  • 电子邮件屏蔽的正则表达式

    我正在尝试编写正则表达式来掩盖电子邮件地址 下面的例子 input 电子邮件受保护 输出 j e com 我已经尝试过以下方法 但我似乎无法使其正常工作 regex lt 输出 j example en com regex lt 输出 j
  • 使用 Amazon EC2/S3 将本地数据复制到 Hadoop 集群上的 HDFS 时出现问题

    我在 Amazon EC2 上设置了一个包含 5 个节点的 Hadoop 集群 现在 当我登录主节点并提交以下命令时 bin hadoop jar
  • 为什么这不起作用?选择中的动态

    好的 我这样做 Select Range 1 20 gt Dynamic q 然后我创建滑块 Slider Dynamic q 1 20 它总是返回一个空集 为什么 Update这样做的目的是当我移动滑块时让设置发生变化 关键是 请记住 D
  • 我可以使用什么正则表达式来查找逗号分隔列表中的 Nᵗʰ 条目?

    I need a regular expression that can be used to find the Nth entry in a comma separated list 例如 假设此列表如下所示 abc def 4322 e
  • Google Chrome 在崩溃后恢复会话 cookie,如何避免?

    在 Google Chrome 上 我在 Windows 8 1 上的版本 35 上看到了这个 到目前为止我没有尝试其他版本 当浏览器崩溃时 或者您只需拔掉电源线 您将被要求恢复上一个会话当你再次打开它时 好的feature but 它也会
  • 如何解决 shell 脚本中的此错误:“read: Illegal option -t”?

    bin bash echo n Hurry up and type something gt if read t 10 response then echo Greate you made it in time else echo sorr
  • win7无法安装Cython

    所以我尝试在 ta lib 上使用 Cython 并且使用 mrjbq7 提供的包装器 非常感谢 所以我尝试在我的计算机上安装 Cython 0 19 1 然后执行python setup py install在 ta lib master
  • 从一个 NSMutableArray 中删除包含在另一个数组中的元素

    我有两个数组 A 和 B 如果 B 中存在这些元素 如何从 A 中删除这些元素 例如数组A 1 2 3 4 5 数组B 1 3 我想从数组 A 中删除 1 和 3 这样操作后数组 A 只包含 2 4 5 除了循环之外 还有其他更有效的方法吗
  • 操作邮件程序 SMTP 谷歌应用程序

    我尝试将 actionmailer 配置为通过 google apps 使用 smtp 发送 config action mailer delivery method smtp config action mailer smtp setti
  • 将字节数组中的 ASCII 转换为字符串

    我在 C 中的字符串转换似乎遇到了问题 我的应用程序收到了一个由 ASCII 字符串 每个字符一个字节 组成的字节数组 不幸的是 它的第一个位置也有一个 0 那么如何将这个字节数组转换为 C 字符串呢 以下是我尝试转换的数据示例 byte
  • 在 Excel VBA 工作簿的立即窗口中执行多行

    我是否只能在 Excel VBA 立即窗口中执行 1 个命令 有没有办法执行多个语句 使用冒号 将多个语句连接在一起的键 前任 MsgBox msgBox1 MsgBox msgBox2 将显示两个警报消息框
  • 使用 Java 连接到 Microsoft Dynamics CRM 本地 Web 服务?

    是否有任何在线资源显示使用 Java 编写的客户端访问 Microsoft CRM 本地 Web 服务的基本步骤 我应该使用哪个 Web 服务工具包 我尝试使用 JAXB 但 WSDL 元素命名存在冲突 需要类自定义 如果我找到正确的绑定修
  • 在C中访问另一个程序的变量

    在Python中 您可以使用id函数来了解变量的内存位置 因此 X Hello world print id X Output is equal to 139806692112112 0x7F27483876F0 我尝试使用 C 中的指针访
  • HashMap 的构建器

    Guava 为我们提供了很棒的 Java 类型工厂方法 例如Maps newHashMap 但是还有 java 地图构建器吗 HashMap
  • 确定弯曲、拉长区域的中线

    想象一下我有一个热狗的二维图像 我可以在热狗两端之间画一条直线 将此称为中线 它的属性之一是 2D 热狗围绕它具有最低惯性矩的轴 现在 如果我将热狗弯曲成弧形 这条中线也会扭曲 给定一张弯曲热狗的图片 我如何确定这条弯曲的中线 该算法应该容
  • 当在 apache httpd 中完成 URL 重写时,POST 请求将转换为 GET

    我有一个 apache Web 服务器 充当内部应用程序服务器的反向代理 我使用 ProxyPass 和 ProxyPassReverse 来实现这一点 我有多个上下文根映射到不同的应用程序 我正在尝试从一个上下文的域名中删除上下文根 以便
  • C# 反序列化 Json 未知键

    我有这个 JSON 我必须反序列化它 homepage http files minecraftforge net maven net minecraftforge forge promos 1 10 latest 12 18 0 2000