【问题标题】:Deserialize JSON string with Date Headings - C# - No JSON.Net使用日期标题反序列化 JSON 字符串 - C# - 无 JSON.Net
【发布时间】:2017-01-30 22:20:06
【问题描述】:

我需要将一个 JSON 字符串反序列化和/或导出到 csv,然后返回给我。问题在于 JSON 字符串的格式设置会导致日期被用作标题。

请看下面的例子:

{"2017-01-09":{"chats":129,"missed_chats":0},
"2017-01-10":{"chats":347,"missed_chats":0},
"2017-01-11":{"chats":194,"missed_chats":0},
"2017-01-12":{"chats":229,"missed_chats":0}}

因此,我不相信我可以创建一个类来保存它们,因为每个日期都需要自己的类来匹配“2017-01-09”的标题,依此类推。我需要将日期保留为数据,因此以编程方式为 csv 文件设置我自己的标题非常好。

我无法为 Visual Studio 使用任何插件,例如 JSON.Net,因此只能使用内置工具或其他一些解决方法。

谢谢

【问题讨论】:

  • JSON.NET 不是“插件”。它是一个库,MSDN 上JavaScriptSerializer Class 的第一个词是将 JSON.NET 用于非 web/ajax 用途。这样做,你可以很容易地编写一个转换器
  • 好的,我已经安装了 JSON.Net 库。您对如何创建此转换器有建议吗?或者我可以用作参考的类似内容的链接?我很难找到类似的 JSON 字符串格式。
  • 下面提供的答案是您需要的参考...

标签: c# json visual-studio csv serialization


【解决方案1】:

您可以反序列化为Dictionary,如下所示:

public class InnerThing
{
    public int Chats { get; set; }
    public int Missed_Chats { get; set; }
}

var result = JsonConvert.DeserializeObject<Dictionary<string, InnerThing>>(json);

【讨论】:

  • 是的,这确实有帮助。我对它如何存储日期以及如何检索它们感到困惑。在查看了其他示例之后,我能够从这些示例中提取数据。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多