c# - 使用动态键反序列化 JSON

标签 c# json dynamic deserialization

我对 JSON 很陌生,目前正在学习(反)序列化。 我正在从网页中检索 JSON 字符串并尝试将其反序列化为一个对象。问题是,根 json 键是静态的,但底层键是动态的,我无法预料它们会反序列化。这是字符串的一个迷你示例:

{
    "daily": {
        "1337990400000": 443447,
        "1338076800000": 444693,
        "1338163200000": 452282,
        "1338249600000": 462189,
        "1338336000000": 466626
    }
}

对于我的应用程序中的另一个 JSON 字符串,我使用了 JavascriptSerializer 并使用类结构预测键。将此字符串反序列化为对象的最佳方法是什么?

最佳答案

说真的,没必要走动态路线;使用

var deser = new JavaScriptSerializer()
    .Deserialize<Dictionary<string, Dictionary<string, int>>>(val);
var justDaily = deser["daily"];

获取字典,然后你可以例如

foreach (string key in justDaily.Keys)
    Console.WriteLine(key + ": " + justDaily[key]);

获取当前的键和相应的值。

关于c# - 使用动态键反序列化 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13517792/

相关文章:

c# - 无法在 gridview asp.net 中放置水平滚动条

c# $ 资源中的字符串

json - Angular:HttpErrorResponse :"Http failure during parsing for..."- 从服务器成功返回的字符串

C# - 将 .NET 程序集加载到单独的 AppDomain 中以便卸载它

python - 使用 getattr [ python ] 在实例上调用方法

c# - 为什么这个 XMLSerialize 不起作用?

c# wpf dispatcher.beginInvoke 卡住

java - 将 json 解析值与用户输入的值进行匹配

java - 使用 jsonrpc4j 记录 JSON-RPC 调用

javascript - jquery动态添加表单字段问题