首页 > 后端开发 > C++ > 如何在 C# 中使用动态键反序列化 JSON?

如何在 C# 中使用动态键反序列化 JSON?

Patricia Arquette
发布: 2025-01-17 10:27:09
原创
560 人浏览过

How Can I Deserialize JSON with Dynamic Keys in C#?

C# 中处理动态键的 JSON 反序列化

在处理 JSON 数据时,遇到动态键可能会给反序列化带来挑战。请考虑以下 JSON 字符串:

<code class="language-json">{
    "daily": {
        "1337990400000": 443447,
        "1338076800000": 444693,
        "1338163200000": 452282,
        "1338249600000": 462189,
        "1338336000000": 466626
    }
}</code>
登录后复制

在这个字符串中,“daily”键是静态的,但底层键是动态的,在反序列化时无法预测。为了解决这个问题,我们可以利用动态对象的强大功能。

使用 JavaScriptSerializer 类,我们可以创建一个动态对象,如下所示:

<code class="language-csharp">dynamic deser = new JavaScriptSerializer().Deserialize<dynamic>(val);</code>
登录后复制

此反序列化将创建一个动态对象 deser,它可以访问 JSON 属性。要访问每日数据,我们可以使用以下语句:

<code class="language-csharp">dynamic justDaily = deser["daily"];</code>
登录后复制

justDaily 对象现在表示每日数据,可以访问其动态键。要遍历键及其值,我们可以使用以下代码:

<code class="language-csharp">foreach (string key in justDaily.Keys)
    Console.WriteLine(key + ": " + justDaily[key]);</code>
登录后复制

这将输出动态键及其对应值。通过使用动态对象,即使遇到动态键,我们也可以有效地反序列化 JSON 数据。

以上是如何在 C# 中使用动态键反序列化 JSON?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板