Разница между страницами «JDK» и «JsonToPojo»

Материал из Home Wiki
(Различия между страницами)
Перейти к навигации Перейти к поиску
 
(Новая страница: «Категория:Работа = Создание POJO из Json = == Установить jsonschema2pojo == https://github.com/joelittlejohn/jsonschema2p…»)
 
Строка 1: Строка 1:
= Reference: Weak, Soft, Phantom, Strong =
[[:Категория:Работа]]


https://habr.com/ru/post/169883/
= Создание POJO из Json =
 
== Установить jsonschema2pojo ==
= Java Memory Model (JSR 133) - лучшее  =
https://github.com/joelittlejohn/jsonschema2pojo.git
 
== Скомпилировать jsonschema2pojo-cli ==
https://habrahabr.ru/company/golovachcourses/blog/221133/
== Конвертация ==
 
Идем в jsonschema2pojo/jsonschema2pojo-cli/target/lib и пишем простой скрипт
== final-поля ==
<syntaxhighlight>
java -jar ./jsonschema2pojo-cli-0.5.2-SNAPSHOT.jar -s ~/prozvon/src/main/java/ru/inquarta/prozvon/server/sybase/schema/region.json -t prozvon -T JSON


java -jar ./jsonschema2pojo-cli-0.5.2-SNAPSHOT.jar -s ~/prozvon/src/main/java/ru/inquarta/prozvon/server/sybase/schema/settlement.json -t prozvon -T JSON


Значения для final-полей объекта задаются в конструкторе. Если предположить, что объект построен «правильно», то как только объект построен, значения, присвоенные final-полям в конструкторе будут видны всем другим потокам без синхронизации.
java -jar ./jsonschema2pojo-cli-0.5.2-SNAPSHOT.jar -s ~/prozvon/src/main/java/ru/inquarta/prozvon/server/sybase/schema/settlement_area.json -t prozvon -T JSON


Пример:
<syntaxhighlight>
public FinalFieldExample() { // bad!
    x = 3;
    y = 4;
    // bad construction - allowing this to escape
    global.obj = this;
}
</syntaxhighlight>
</syntaxhighlight>


в этом случае нет гарантии, что поток, прочитавший ссылку на данный объект из global.obj прочитает 3 из x.
На выходе получаем файлы java в пакете по умолчанию расположенные в каталоге prozvon.


Или не явный пример:
В них правим если нужно импорты с import org.apache.commons.lang на import org.apache.commons.lang3
<syntaxhighlight>
public class EventListener2 {
  public EventListener2(EventSource eventSource) {
    eventSource.registerListener(
      new EventListener() {
        public void onEvent(Event e) {
          eventReceived(e);
        }
      });
  }
  public void eventReceived(Event e) {
  }
}
</syntaxhighlight>
 
= Отладка =
 
== Удаленная отладка из Eclipse ==
Старт приложения (на примере spring boot) с портом для отладки 8888
<syntaxhighlight>
$ JAVA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=127.0.0.1:8888,server=y,suspend=n -Dspring.profiles.active=dev,swagger,liquibase" ./app-0.0.1-SNAPSHOT.war
</syntaxhighlight>


В Eclipse выбрать Debug configurations... -> Remote Java Application -> New, исправить порт и нажать Debug
Выставляем нужный пакет и переносим в нужную папку


= Порядок модификаторов private static final =
[[Категория:Работа]]
Порядок формально не определен, но лучше придерживаться как написано в JLS '''private static final'''
[[Категория:Java]]
[[Категория:JSON]]

Текущая версия на 11:26, 26 апреля 2018

Категория:Работа

Создание POJO из Json

Установить jsonschema2pojo

https://github.com/joelittlejohn/jsonschema2pojo.git

Скомпилировать jsonschema2pojo-cli

Конвертация

Идем в jsonschema2pojo/jsonschema2pojo-cli/target/lib и пишем простой скрипт

java -jar ./jsonschema2pojo-cli-0.5.2-SNAPSHOT.jar -s ~/prozvon/src/main/java/ru/inquarta/prozvon/server/sybase/schema/region.json -t prozvon -T JSON

java -jar ./jsonschema2pojo-cli-0.5.2-SNAPSHOT.jar -s ~/prozvon/src/main/java/ru/inquarta/prozvon/server/sybase/schema/settlement.json -t prozvon -T JSON

java -jar ./jsonschema2pojo-cli-0.5.2-SNAPSHOT.jar -s ~/prozvon/src/main/java/ru/inquarta/prozvon/server/sybase/schema/settlement_area.json -t prozvon -T JSON

На выходе получаем файлы java в пакете по умолчанию расположенные в каталоге prozvon.

В них правим если нужно импорты с import org.apache.commons.lang на import org.apache.commons.lang3

Выставляем нужный пакет и переносим в нужную папку