Я получаю файл YAML, который анализирую с помощью движка змеи (для YAML 1.2).
LoadSettings settings = new LoadSettingsBuilder().build();
Load load = new Load(settings);
Map<String, Object> yamlMap = (Map<String, Object>) load.loadFromString(new String(<yaml_contents_as_byte_array>));
Затем я использую GSON для преобразования этого в JsonObject.
Gson gson = new GsonBuilder().setPrettyPrinting().create();
JsonParser parser = new JsonParser();
JsonObject obj = parser.parse(gson.toJson(yamlMap)).getAsJsonObject();
Цель состоит в том, чтобы запустить этот YAML, сравнив его с известной моделью данных. Если поля различаются, обязательные поля отсутствуют и т. д. Я должен возвращать ошибку для каждого из них. Цель состоит в том, чтобы найти способ включить номер строки проблемного поля из исходного YAML, но поскольку я выполняю проверки через JSON, я не знаю исходный номер строки, когда сталкиваюсь с ошибкой. Мне любопытно, есть ли какой-нибудь простой способ сохранить номер строки YAML, возможно, путем добавления значения lineNumber/columnNumber в каждое поле, когда оно анализируется и вставляется в карту?