Генерация кода по заданной структуре JSON API

112
25 сентября 2018, 21:10

Я не уверен, отностися ли это полностью к SuiteCRM или к JSON API. Вероятно, это что-то посередине.

Есть ресурс с название Lead, чья структура целиком доступна, если выполнить такой запрос:

GET {{crm_base_url}}/api/v8/modules/Leads/meta/attributes

Это дает такой ответ:

{
    "meta": {
        "Leads": {
            "attributes": {
                "id": {
                    "name": "id",
                    "vname": "LBL_ID",
                    "type": "id",
                    "required": true,
                    "reportable": true,
                    "comment": "Unique identifier",
                    "inline_edit": false
                },
                "first_name": {
                    "name": "first_name",
                    "vname": "LBL_FIRST_NAME",
                    "type": "varchar",
                    "len": "100",
                    "unified_search": true,
                    "full_text_search": {
                        "boost": 3
                    },
                    "comment": "First name of the contact",
                    "merge_filter": "selected"
                },
                ...

Я хочу использовать одну из JSON API библиотек. Допустим, Java реализацию. Тогда я должен написать такой код:

@JsonApiResource(type = "Leads")
public class Lead {
    @JsonApiId
    private UUID id;
    @JsonProperty("first_name")
    private String firstName;
    ...

Как я могу избежать ручной работы и сгенерировать код таких классов автоматически?

Неважно какой язык программирования использовать, в результате должен получится класс с полями.

Answer 1

Немного погуглив (так как тема явно не нова). Нашел пару решений. https://github.com/astav/JsonToJava:

Особенности

Может генерировать классы для произвольно сложной иерархии (рекурсивно) Может читать ваши существующие классы Java и, если он может десериализоваться в этих структурах, сделает это Будет запрашивать ввод пользователя, если существуют двусмысленные случаи

https://timboudreau.com/blog/json/read - онлайн инструмент

https://github.com/inder123/json2java- как и все вышеперечисленное, преобразует json в java объекты.

http://htmlpreview.github.io/?https://raw.githubusercontent.com/foobnix/android-universal-utils/master/json/generator.html - еще один онлайн инструмент.

READ ALSO
Как они это сделали? огромная задержка при парсинге страниц

Как они это сделали? огромная задержка при парсинге страниц

если гуляем по сайту через браузер, например откроем эту страницу

135
Изменение данных в MySQL через php

Изменение данных в MySQL через php

Данный код предназначен для локальной работы, используется php5, просьба не давать советы по поводу защиты или того что mysql_query и тд устарели

158