Генератор классов json ( + библиотека .NET)

Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,825
Реакции[?]
1,852
Поинты[?]
24K
Если вы когда-нибудь работали с форматом JSON, то могли заметить, что достаточное количество времени занимает простое написание класса, с помощью которого вы десериализируете строку, а позже и сможете работать с определенным объектом. Похоже, Xamasoft тоже задумались над подобным вопросом и решили создать софт, позволяющий в несколько кликов получать класс, соответствующий примеру из документации (естественно, что если у вас нет полного возможного сериализованного объекта класса, программа работать не будет).
Софт работает на библиотеке NewtonSoft.JSON, поэтому все свойства будут создаваться библиотечным методом, при желании легко это переделать для своей либы.

Основной функционал:
  • Создание файла класса .cs с заданными параметрами:
    • Пространством имен
    • Названием главного класса (также изменяется название файла)
    • Папкой назначения файла
    • Языком файла (C#, Visual Basic .NET, TypeScript)
  • Настройка второстепенных классов
    • Использование вложенных классов
    • Использование одного/разных пространства имен
  • Изменение способа генерации члена класса (Property/Field)
  • Изменение видимости (Internal/Public)
  • Конвертация в PascalBase
  • Использование явной десериализации (+ не генерировать вспомогательные классы)
  • Применение обфускационных атрибутов исключения
  • Генерация единого файла
  • Генерация файла с примерами данных
  • Копирование класса в буфер обмена без создания доп. файла
Скриншоты работы программы:
1607110382307.png
Официальный сайт программы:
Пожалуйста, авторизуйтесь для просмотра ссылки.
(более не поддерживается с 2017 года)
Исходный код:
Пожалуйста, авторизуйтесь для просмотра ссылки.

Скачать собранную версию (+библиотека .NET):
Пожалуйста, авторизуйтесь для просмотра ссылки.

VT:
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.
,
Пожалуйста, авторизуйтесь для просмотра ссылки.


Вместе с программой прилагается библиотека, на основе которой как раз софт и написан, вы тоже можете ей воспользоваться. Разработчик библиотеки все тот же - xamasoft.

P.S: У меня пока нет идей для новых уникальных ботом/программ, поэтому если хотите помочь, как мне, так и форуму - прошу вас отписать мне в Telegram с идеей для темы. Если предложение действительно стоящее - я обязательно его реализую.
 
Арбитр
Продавец
Статус
Оффлайн
Регистрация
13 Июл 2018
Сообщения
1,528
Реакции[?]
1,637
Поинты[?]
280K
Отлично написанный и полезный гайд, ставлю класс.
 
Олдфаг
Статус
Оффлайн
Регистрация
18 Фев 2019
Сообщения
2,825
Реакции[?]
1,852
Поинты[?]
24K
Пример работы программы с ответом от QIWI API (метод
Пожалуйста, авторизуйтесь для просмотра ссылки.
):
JSON:
{
  "authInfo": {
    "boundEmail": "m@ya.ru",
    "ip": "81.210.201.22",
    "lastLoginDate": "2017-07-27T06:51:06.099Z",
    "mobilePinInfo": {
      "lastMobilePinChange": "2017-07-13T11:22:06.099Z",
      "mobilePinUsed": true,
      "nextMobilePinChange": "2017-11-27T06:51:06.099Z"
    },
    "passInfo": {
      "lastPassChange": "2017-07-21T09:25:06.099Z",
      "nextPassChange": "2017-08-21T09:25:06.099Z",
      "passwordUsed": true
    },
    "personId": 79683851815,
    "pinInfo": {
      "pinUsed": true
    },
    "registrationDate": "2017-01-07T16:51:06.100Z"
  },
  "contractInfo": {
    "blocked": false,
    "contractId": 79683851815,
    "creationDate": "2017-01-07T16:51:06.100Z",
    "features": [
    ],
    "identificationInfo": [
      {
        "bankAlias": "QIWI",
        "identificationLevel": "SIMPLE"
      }
    ]
  },
  "userInfo": {
    "defaultPayCurrency": 643,
    "defaultPaySource": 7,
    "email": null,
    "firstTxnId": 10807097143,
    "language": "string",
    "operator": "Beeline",
    "phoneHash": "lgsco87234f0287",
    "promoEnabled": null
  }
}
1607112188157.png
Итоговый класс объекта:
Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Арбитр
Продавец
Статус
Оффлайн
Регистрация
13 Июл 2018
Сообщения
1,528
Реакции[?]
1,637
Поинты[?]
280K
Пример работы программы с ответом от QIWI API (метод https://developer.qiwi.com/ru/qiwi-wallet-personal/?http#profile):
JSON:
{
  "authInfo": {
    "boundEmail": "m@ya.ru",
    "ip": "81.210.201.22",
    "lastLoginDate": "2017-07-27T06:51:06.099Z",
    "mobilePinInfo": {
      "lastMobilePinChange": "2017-07-13T11:22:06.099Z",
      "mobilePinUsed": true,
      "nextMobilePinChange": "2017-11-27T06:51:06.099Z"
    },
    "passInfo": {
      "lastPassChange": "2017-07-21T09:25:06.099Z",
      "nextPassChange": "2017-08-21T09:25:06.099Z",
      "passwordUsed": true
    },
    "personId": 79683851815,
    "pinInfo": {
      "pinUsed": true
    },
    "registrationDate": "2017-01-07T16:51:06.100Z"
  },
  "contractInfo": {
    "blocked": false,
    "contractId": 79683851815,
    "creationDate": "2017-01-07T16:51:06.100Z",
    "features": [
    ],
    "identificationInfo": [
      {
        "bankAlias": "QIWI",
        "identificationLevel": "SIMPLE"
      }
    ]
  },
  "userInfo": {
    "defaultPayCurrency": 643,
    "defaultPaySource": 7,
    "email": null,
    "firstTxnId": 10807097143,
    "language": "string",
    "operator": "Beeline",
    "phoneHash": "lgsco87234f0287",
    "promoEnabled": null
  }
}
Итоговый класс объекта: https://yadi.sk/d/wmhjb3uAV2JHdQ
Ухх ля какой, за примеры отдельная благодарность.
 
Сверху Снизу