c# - 在 Json API 调用中卡住了 DateTime 对象名称

标签 c# asp.net json asp.net-mvc api

我正在调用一个 API,它给我一个 json 响应,例如

{
"symbol": "AAPL",
"stock_exchange_short": "NASDAQ",
"timezone_name": "America/New_York",
"intraday": {
    "2018-11-21 15:59:00": {
        "open": "177.24",
        "close": "176.77",
        "high": "177.25",
        "low": "176.77",
        "volume": "430073"
    },
    "2018-11-21 15:58:00": {
        "open": "177.23",
        "close": "177.23",
        "high": "177.25",
        "low": "177.12",
        "volume": "188425"
    },
    "2018-11-21 15:57:00": {
        "open": "177.18",
        "close": "177.21",
        "high": "177.24",
        "low": "177.11",
        "volume": "163151"
    },

现在我想访问所有数据,所以我需要创建一个对象,但是当我使用 Json2cSharp 转换器时,它会给我一个无效类型的对象名称。 那么我应该创建哪种类型的对象,以便我可以定期访问所有数据。 请帮忙。

最佳答案

你可以使用这样的东西:

public partial class Welcome
{
    [JsonProperty("symbol")]
    public string Symbol { get; set; }

    [JsonProperty("stock_exchange_short")]
    public string StockExchangeShort { get; set; }

    [JsonProperty("timezone_name")]
    public string TimezoneName { get; set; }

    [JsonProperty("intraday")]
    public Dictionary<string, Intraday> Intraday { get; set; }
}

public partial class Intraday
{
    [JsonProperty("open")]
    public string Open { get; set; }

    [JsonProperty("close")]
    public string Close { get; set; }

    [JsonProperty("high")]
    public string High { get; set; }

    [JsonProperty("low")]
    public string Low { get; set; }

    [JsonProperty("volume")]
    public long Volume { get; set; }
}

棘手的部分是 Intraday 属性,因为您必须使用字典才能正确获取所有值。

我用过quicktype (json2csharp 现在正在与之联手)。如果您想自己尝试一下该工具,请参阅以下代码链接:https://app.quicktype.io?share=DRgQz3PJVCLy4JR3JtGZ

如果您更改右侧菜单中的选项,则会有更多代码。您可以将输出功能设置为完整,并且将获得非常好的片段。包括使用情况。在这种情况下,类似下面的内容足以将 json 反序列化为您的自定义类。

var welcome = Welcome.FromJson(jsonString);

希望这有帮助!

关于c# - 在 Json API 调用中卡住了 DateTime 对象名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53447346/

相关文章:

c# - 如何在 HTML 中为 ASP.NET MVC 创建按钮?

c# - RavenDB 排序方式

c# - 从 app.config 文件的 web.config 部分获取值?

android - 在检索 json 数据时遇到问题。如何找回它

php - 远程 JSON 数据源的 JQuery 自动完成功能不起作用

c# - 使用 AppDomain 加载/卸载外部程序集

c# - asp.net mvc c# with sql 没有 ORM

javascript - 为什么 HTML 按钮的“属性”窗口中没有“事件”按钮?

asp.net - 在 ASP.NET Core 应用程序中使用标准 Active Directory?

java - Json 作为 Grails Controller 的参数