Skip to content

Jackson module to add YAML backend (parser/generator adapters)

Notifications You must be signed in to change notification settings

mboogerd/jackson-dataformat-yaml

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Overview

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.

Status

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 multiple JsonFactory instances, give an InputStream, 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.

Maven dependency

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

Simple usage

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

About

Jackson module to add YAML backend (parser/generator adapters)

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 99.9%
  • Shell 0.1%