Как создать класс Java, содержащий карту известных и неизвестных пар ключ-значение? ⇐ JAVA
Как создать класс Java, содержащий карту известных и неизвестных пар ключ-значение?
Я пытаюсь создать класс Java для хранения результатов десериализации сообщения в формате JSON. Сообщение имеет простую структуру:
{ "appId": "MyApp", "действие": "Обновить", "entityType": "Свойство", "сущность": { "marketId": "abc123", "propertyId": "def456", "name": "Центральный вокзал", "hasFoo": правда, «hasBar»: ложь, "areaInSf": 30 000 ... еще пары ключ-значение... } } В entity поля идентификатора и имени являются обязательными, и их имена известны. Может быть произвольное количество других свойств, которые я также хочу десериализовать — они не являются обязательными, и я не знаю всех имен заранее.
Если я имею дело только с известными полями, я могу создать модель Java, например
Сообщение публичного класса { общедоступная строка appId; публичное действие String; общедоступная строка типа объекта; публичная организация; } общественный класс Entity { публичная строка marketId; публичная строка propertyId; публичное имя строки; } и десериализуйте JSON с помощью Джексона, например:
ObjectMapper om = новый ObjectMapper(); Сообщение myMessage = om.readValue(myJsonString, Message.class); Но как мне быть с необязательными полями в сообщении? Это плоские однотипные поля идентификатора и имени, а не вложенная карта, поэтому я не могу этого сделать.
публичный класс Entity { публичная строка marketId; публичная строка propertyId; публичное имя строки; общественная картаotherFields; // hasFoo, hasBar, areaInSf ... } Я предпочитаю строго типизированный Entity, чтобы можно было проверять аспекты обязательных полей — минимальную длину идентификатора и т. д. В противном случае Entity может быть просто code>Карта. Чтобы получить доступ к полям, я просто перебираю свойства карты. Но я хочу иметь возможность извлекать необходимые поля по имени и, если возможно, перебирать только оставшиеся поля.
Как спроектировать Entity POJO, чтобы можно было десериализовать как поля, объявленные в определении класса, так и некоторые дополнительные поля, найденные во входном JSON?
Я пытаюсь создать класс Java для хранения результатов десериализации сообщения в формате JSON. Сообщение имеет простую структуру:
{ "appId": "MyApp", "действие": "Обновить", "entityType": "Свойство", "сущность": { "marketId": "abc123", "propertyId": "def456", "name": "Центральный вокзал", "hasFoo": правда, «hasBar»: ложь, "areaInSf": 30 000 ... еще пары ключ-значение... } } В entity поля идентификатора и имени являются обязательными, и их имена известны. Может быть произвольное количество других свойств, которые я также хочу десериализовать — они не являются обязательными, и я не знаю всех имен заранее.
Если я имею дело только с известными полями, я могу создать модель Java, например
Сообщение публичного класса { общедоступная строка appId; публичное действие String; общедоступная строка типа объекта; публичная организация; } общественный класс Entity { публичная строка marketId; публичная строка propertyId; публичное имя строки; } и десериализуйте JSON с помощью Джексона, например:
ObjectMapper om = новый ObjectMapper(); Сообщение myMessage = om.readValue(myJsonString, Message.class); Но как мне быть с необязательными полями в сообщении? Это плоские однотипные поля идентификатора и имени, а не вложенная карта, поэтому я не могу этого сделать.
публичный класс Entity { публичная строка marketId; публичная строка propertyId; публичное имя строки; общественная картаotherFields; // hasFoo, hasBar, areaInSf ... } Я предпочитаю строго типизированный Entity, чтобы можно было проверять аспекты обязательных полей — минимальную длину идентификатора и т. д. В противном случае Entity может быть просто code>Карта. Чтобы получить доступ к полям, я просто перебираю свойства карты. Но я хочу иметь возможность извлекать необходимые поля по имени и, если возможно, перебирать только оставшиеся поля.
Как спроектировать Entity POJO, чтобы можно было десериализовать как поля, объявленные в определении класса, так и некоторые дополнительные поля, найденные во входном JSON?
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Преобразование карты: добавление новых пар ключевых значений в существующую карту Java 8
Anonymous » » в форуме JAVA - 0 Ответы
- 8 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Как создать rv_histogram из известных значений функции плотности вероятности
Anonymous » » в форуме Python - 0 Ответы
- 11 Просмотры
-
Последнее сообщение Anonymous
-