Jackson
Xml
Maven
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-xml</artifactId>
</dependency>
Ignore unknown fields
public void run(String... args) throws Exception {
File file = ResourceUtils.getFile("classpath:config.xml");
InputStream inputStream = new FileInputStream(file);
XmlMapper xmlMapper = new XmlMapper();
xmlMapper.enable(JsonGenerator.Feature.IGNORE_UNKNOWN);
xmlMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
Cruise cruise = xmlMapper.readValue(inputStream, new TypeReference<>() {
});
process(cruise);
System.exit(0);
}
For lists
@Data
public class Pipelines {
private String group;
@JacksonXmlElementWrapper(useWrapping = false)
private List<Pipeline> pipeline = new ArrayList<>();
}
Json
PropertyOrder
@Data
@JsonPropertyOrder({"name", "count", "linesOfCode", "duplicates"})
public class DuplicateComponent {
private String name;
private int linesOfCode;
private List<ProjectComponent> duplicates = new ArrayList<>();
public int getCount() {
return duplicates.size();
}
}
Property
@Data
public class RootProject {
@JsonProperty("components")
private List<ProjectComponent> projectComponents;
@JsonProperty("paging")
private Paging paging;
}
Yaml
Maven
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
</dependency>
Setup mapper
//do not put quotes over values
mapper = new ObjectMapper(new YAMLFactory()
.enable(YAMLGenerator.Feature.MINIMIZE_QUOTES));
//ignore unknown
mapper.enable(JsonGenerator.Feature.IGNORE_UNKNOWN);
mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
// do not output null fields
mapper.setSerializationInclusion(JsonInclude.Include.NON_NULL);
Pretty print
mapper.writerWithDefaultPrettyPrinter().writeValueAsString(applicationFile.getApplication())
Last updated