Обновлено 20.11.2024
AnyLogic Cloud API переходит на уровень абстракции выше языка, используемого при разработке модели (в случае AnyLogic это Java) и позволяет взаимодействовать с моделью, используя различные клиентские языки. С помощью API вы можете задавать элементы входных данных, выгружать выходные данные, взаимодействовать с запущенной моделью.
С учетом всех этих особенностей механизм преобразование данных является частью API.
Если обобщить, он работает следующим образом:
- JSON — это универсальный формат данных в AnyLogic Cloud API и основной формат работы REST API.
-
Jackson используется для преобразования данных между Java и JSON. Примеры преобразования приведены в таблице ниже. Чтобы ваши данные преобразовывались без потерь, следуйте определенным базовым принципам, которые также описаны ниже.
В процессе преобразования из JSON в Java, Jackson определяет целевой тип данных и пытается соответствующим образом преобразовать строку. При обратном преобразовании целевой тип не идентифицируется. -
Существуют исключения, когда преобразование из Java в JSON выполняется особым способом, без использования Jackson. Это относится, в частности, к объектам палитры Анализ AnyLogic: DataSet, HistogramData, Histogram2DData, StatisticsContinuous, StatisticsDiscrete.
Объекты этих классов считаются только выходными данными, так что они никак не могут передаваться из API-клиента модели.
JSON | Java | |
---|---|---|
Примитивные типы | ||
Number | ↔ | double, float, int, long и так далее (любой численный тип) |
Boolean | ↔ | boolean |
String | ↔ | String |
Исключение: Классы AnyLogic со специфическим преобразованием Java в JSON. Возможность обратного преобразования не предусмотрена. | ||
|
← | DataSet |
|
← | HistogramData |
|
← | Histogram2DData |
|
← | StatisticsContinuous |
|
← | StatisticsDiscrete |
Стандартные комплексные типы, для которых используются правила Jackson. | ||
Форматированная строка (String), например, "2019-05-13T15:34:03.976" | ↔ | Date |
Date | → | Date |
[12.5, 34,156.9] массив значений | ↔ | double[] |
["red", "white","blue"] массив строк | ↔ | ArrayList<String> |
Преобразуйте в JSON, используя API, и посмотрите на получившуюся структуру | ↔ | Любой комплексный класс |
Пользовательские классы, для которых используются правила Jackson. | ||
{ name:"John",age:33 } | ↔ |
|
{ name:"John", age:33 } | ↔ |
|
Чтобы удостовериться, что преобразование данных в ваших нестандартных объектах безопасно, следуйте рекомендациям:
- Поля классов, которые вы планируете передавать, следует объявлять публичными. Если классы объявлены приватными, им следует задать публичные get…() и set…() функции.
- Для Java классов следует задать стандартный публичный конструктор.
-
Как мы можем улучшить эту статью?
-