This project contains Jackson extension component for reading and writing YAML encoded data. SnakeYAML library is used for low-level YAML parsing. This project adds necessary abstractions on top to make things work with other Jackson functionality.
Project is licensed under Apache License 2.0.
Project is in its prototype phase, so:
- Basic parsing seems to work, as per basic unit tests
- Basic generation: not configurable, produces visually ok block format
- Even format auto-detection works! (can create
ObjectMapper
with multipleJsonFactory
instances, give anInputStream
, and it'll figure out what format content is in!)
Missing are:
- Not much configurability: might make sense to esp. allow configuration of generation details
- Support for YAML tags (which theoretically could help with typing), aliases and anchors (which would be good for Object Id, refs): ideally these would be supported. And it is possible in principle, no fundamental problems.
To use this extension on Maven-based projects, use following dependency:
<dependency>
<groupId>com.fasterxml.jackson.dataformat</groupId>
<artifactId>jackson-dataformat-yaml</artifactId>
<version>2.1.3</version>
</dependency>
Usage is as with basic JsonFactory
; most commonly you will just construct a standard ObjectMapper
with com.fasterxml.jackson.dataformat.yaml.YAMLFactory
, like so:
ObjectMapper mapper = new ObjectMapper(new YAMLFactory());
User user = mapper.readValue(yamlSource, User.class);
but you can also just use underlying YAMLFactory
and parser it produces, for event-based processing:
YAMLFactory factory = new YAMLFactory();
JsonParser parser = factory.createJsonParser(yamlString); // don't be fooled by method name...
while (parser.nextToken() != null) {
// do something!
}
- Documentation IS TO BE WRITTEN