Я использую библиотеку Джексона для преобразования Java объектов в формат YAML. Основываясь на документации, которую я нашел на Inte rnet, я смог быстро написать функцию, которая выполняет преобразование.
Я пытаюсь преобразовать следующие классы в YAML:
public class RequestInfo
{
private String thePath;
private String theMethod;
private String theURL;
private List<ParamInfo> theParams = new ArrayList<>();
// getters and setters
}
public class ParamInfo
{
private String paramName;
private String paramType;
// getters and setters
}
Используя ObjectMapper Джексона, я могу легко сгенерировать YAML:
public String basicTest()
{
ObjectMapper theMapper = new ObjectMapper(new YAMLFactory());
RequestInfo info = new RequestInfo();
info.setThePath("/");
info.setTheMethod("GET");
info.setTheURL("http://localhost:8080/");
List<ParamInfo> params = new ArrayList<>();
params.add(new ParamInfo("resource","path"));
info.setTheParams(params);
String ret = null;
try
{
ret = theMapper.writeValueAsString(info);
}
catch(Exception exe)
{
logger.error(exe.getMessage());
}
return(ret);
}
YAML, который я получаю ниже:
---
thePath: "/"
theMethod: "GET"
theURL: "http://localhost:8080/"
theParams:
- paramName: "resource"
paramType: "path"
YAML, который я получаю, в порядке, но у него есть некоторые проблемы в моих глазах. Один пробел - это «---», с которого он начинается. Другим является тот факт, что я хотел бы иметь возможность группировать информацию способом, аналогичным приведенному ниже YAML:
RequestInfo:
thePath: "/"
theMethod: "GET"
theURL: "http://localhost:8080/"
theParams:
- paramName: "resource"
paramType: "path"
Все примеры, которые я вижу на Inte rnet, используют класс Employee и поговорим о том, как преобразовать этот класс в YAML, но не говорите, как избежать «---» (или изменить его на более понятный). Я также не могу найти ничего, что говорит о том, как сгруппировать YAML описанным мною способом.
Кто-нибудь знает, как это сделать? Есть ли способ исключить «---» или создать имя (например, «RequestInfo»), которое группирует переведенные данные в объект?