Создание значения типа f # - PullRequest
0 голосов
/ 25 апреля 2019
  type ExcludeToIncludeCombinationsWhenMergingJson = JsonProvider<"""
  {
    "data": {
      "excludeToIncludeList": [
        {
          "budgetType": "bottomUp",
          "budgetYear": 2019,
          "outletId": 9223372036854775806
        },
        {
          "budgetType": "bottomUp",
          "budgetYear": 2019
        }
      ]
    }
  }
  """,SampleIsList=true>

Я новичок в f #. У меня есть такой тип. Как я могу создать значение этого типа? Я действительно борюсь с этим.

Я пробовал это

let r = ExcludeToIncludeCombinationsWhenMergingJson.Root(ExcludeToIncludeCombinationsWhenMergingJson.Data(ExcludeToIncludeCombinationsWhenMergingJson.ExcludeToIncludeList([{BudgetType = "bottomup"; BudgetYear = 2019; OutletId = 5;}]))) 

Это не работает. Любая помощь будет оценена. Любой документ, за которым я могу следовать

1 Ответ

0 голосов
/ 25 апреля 2019

Чтобы создать значение типа ExcludeToIncludeCombinationsWhenMergingJson, вам нужно вызвать метод Parse, а input - это настоящая строка json, которую вы хотите проанализировать, например:

let jsonString = ... // read from file or network
let r = ExcludeToIncludeCombinationsWhenMergingJson.Parse jsonString
// now use r
r.Data.ExcludeToIncludeList ...

Обратите внимание, что метод Parse вызовет исключение, когда jsonString недопустим (не имеют правильной структуры / формата, как указано в строке примера).

Чтобы проанализировать саму примерную строку json, вы можете использовать метод GetSample или GetSamples (последний доступен только тогда, когда примерная строка json является списком).

Также обратите внимание, что отправленный образец строки json не является списком, поэтому, пожалуйста, удалите ,SampleIsList=true

Для получения более подробной информации, пожалуйста, обратитесь к официальному документу провайдера Json Type: http://fsharp.github.io/FSharp.Data/library/JsonProvider.html

...