具有可选属性的JSON类型提供程序的数据样本

Mat*_*ias 6 f# type-providers f#-data

我试图使用JSON类型提供程序通过API访问StackOverflow/StackExchange数据.它很有用,但有一点需要注意.API有一个节流阀,由一个字段"退避"发出信号,该字段包含您应该退出的秒数,直到您的下一个请求为止.因此,我不能只将JSON TP指向url,因为默认情况下不存在退避字段.这是响应通常看起来的样子:

  {
  "items": [
    {
      "has_synonyms": true,
      "user_id": 1144035,
      "is_moderator_only": false,
      "is_required": false,
      "count": 7054,
      "name": "sql"
    },
    {
      "has_synonyms": true,
      "user_id": 1144035,
      "is_moderator_only": false,
      "is_required": false,
      "count": 16,
      "name": "algorithm"
    }
  ],
  "has_more": true,
  "quota_max": 10000,
  "quota_remaining": 9693
}
Run Code Online (Sandbox Code Playgroud)

我假设我需要做的是提供一个样本,其中包含一个没有退避的示例(如上所述),以及一个沿着这样的行:

  "has_more": true,
  "quota_max": 10000,
  "quota_remaining": 9693,
  "backoff": 10
}
Run Code Online (Sandbox Code Playgroud)

...所以我得到了退避选项.但是,我不确定如何构建/准备样本.非常感谢帮助!

小智 4

JSON Type Provider 有一个属性SampleIsList,将其设置为true
有一个关于它的文档部分“解析 Twitter 流”JsonProvider请向下滚动,因为无法直接引用该部分。

您的示例文件应如下所示

[{
  ...
  "has_more": true,
  "quota_max": 10000,
  "quota_remaining": 9693
},{
  ...
  "has_more": true,
  "quota_max": 10000,
  "quota_remaining": 9693,
  "backoff": 10
}]
Run Code Online (Sandbox Code Playgroud)