└── README.md /README.md: -------------------------------------------------------------------------------- 1 | This project is the main hub to all kinds of documentation related to the 2 | Jackson JSON Processor. 3 | 4 | # Tutorials 5 | 6 | For your first steps in understanding how to use Jackson, following tutorials are good places to start: 7 | 8 | * [Baeldung Jackson JSON Tutorial](https://www.baeldung.com/jackson) 9 | * [Jackson in N minutes](https://github.com/FasterXML/jackson-databind/) (`README` for `jackson-databind` project) 10 | * [Jenkov.com Jackson Tutorial](http://tutorials.jenkov.com/java-json/index.html) 11 | * [JournalDev JacksonTutorial](https://www.journaldev.com/2324/jackson-json-java-parser-api-example-tutorial) 12 | * [LogicBig.com Jackson Tutorial](https://www.logicbig.com/tutorials/misc/jackson.html) 13 | * [Mkyong.com's Jackson Tutorial](https://www.mkyong.com/java/jackson-how-to-parse-json/) (part of larger [Java JSON Tutorials](https://www.mkyong.com/tutorials/java-json-tutorials) 14 | * [StudyTrails Jackson Introduction](http://www.studytrails.com/java/json/java-jackson-introduction/) 15 | * [TedBlob Jackson Tutorial](https://tedblob.com/category/java/jackson/) 16 | 17 | # General 18 | 19 | ## Annotations 20 | 21 | * [Jackson Annotations](../../wiki/JacksonAnnotations) (links to core/databind/JAXB annotations) 22 | * [Customize your Java-JSON serialization using Jackson Annotations](https://medium.com/trabe/customize-your-serialization-using-jackson-annotations-d6b81c4785a6) 23 | * [Advanced Jackson annotations](http://www.baeldung.com/jackson-advanced-annotations) 24 | 25 | ## Frameworks, Platforms 26 | 27 | * [Jackson on Android](../../wiki/JacksonOnAndroid) (proguard definitions) 28 | 29 | ## JVM Languages beyond Java 30 | 31 | (need links to Scala, Kotlin, Clojure tutorials, articles) 32 | 33 | ## Other 34 | 35 | * [Where are the Javadocs?](../../wiki/Finding-Javadoc) 36 | * [Presentations by Jackson Team, friends](../../wiki/Presentations) 37 | 38 | # Documentation under Jackson GH projects 39 | 40 | [Jackson project hub](../../../jackson) has links to all active Jackson projects. 41 | These projects contain plenty of project-specific documentation, such as: 42 | 43 | * [Core Annotations](../../../jackson-annotations) 44 | * [List of Jackson Core Annotations](../../../jackson-annotations/wiki/Jackson-Annotations) 45 | * [Streaming API](../../../jackson-core/) 46 | * On/off features, per-factory: [JsonFactory.Feature](../../../jackson-core/wiki/JsonFactory-Features)s 47 | * On/off features, reading: [StreamReadFeature](../../../jackson-core/wiki/StreamReadFeatures)s, [JsonReadFeature](../../../jackson-core/wiki/JsonReadFeatures)s, [JsonParser.Feature](../../../jackson-core/wiki/JsonParser-Features)s. 48 | * On/off features, writing: [StreamWriteFeature](../../../jackson-core/wiki/StreamWriteFeatures)s, [JsonWriteFeature](../../../jackson-core/wiki/JsonWriteFeatures)s, [JsonGenerator.Feature](../../../jackson-core/wiki/JsonGenerator-Features)s 49 | * [Databind](../../../jackson-databind/) 50 | * [Databind Annotations](../../../jackson-databind/wiki/Databind-Annotations) 51 | * On/off features: [DeserializationFeature](../../../jackson-databind/wiki/Deserialization-Features)s, [SerializationFeature](../../../jackson-databind/wiki/Serialization-Features)s, [MapperFeature](../../../jackson-databind/wiki/Mapper-Features)s. 52 | 53 | # External (off-GitHub) documentation 54 | 55 | Blogs that regularly write about Jackson include: 56 | 57 | * [Cowtowncoder @Medium](https://medium.com/@cowtowncoder) 58 | * [CowTalk Blog](http://cowtowncoder.com/blog/blog.html) (old, getting obsolete) 59 | 60 | And here are good articles around the web: 61 | 62 | * General usage 63 | * [Jackson JSON Tutorial by Eugen Paraschiv](http://www.baeldung.com/jackson) 64 | * [Jackson - Installation](http://tutorials.jenkov.com/java-json/jackson-installation.html) at Jenkov.com 65 | * [Processing JSON with Jackson](https://dzone.com/articles/processing-json-with-jackson) (DZone) 66 | * [Jackson jr for casual JSON processing](https://medium.com/@cowtowncoder/jackson-jr-for-casual-json-reading-writing-from-java-f5d379d4bcb6#.i2j15cce8) 67 | * Jackson annotations: 68 | * [Customize serialization with Jackson Annotations](https://medium.com/trabe/customize-your-serialization-using-jackson-annotations-d6b81c4785a6) 69 | * [A Guide to Jackson Annotations](http://www.baeldung.com/jackson-annotations) by Baeldung 70 | * [Jackson Annotations](http://tutorials.jenkov.com/java-json/jackson-annotations.html) at Jenkov.com 71 | * Misc configuration 72 | * [Jackson deserialize snake case to camel case](https://tedblob.com/jackson-deserialize-snake-case-to-camel-case/) at TedBlob 73 | * Streaming API 74 | * [Jackson - JsonParser](http://tutorials.jenkov.com/java-json/jackson-jsonparser.html) at Jenkov.com 75 | * [Jackson JsonParser](https://tedblob.com/jackson-jsonparser/) at TedBlob 76 | * [Jackson - JsonGenerator](http://tutorials.jenkov.com/java-json/jackson-jsongenerator.html) at Jenkov.com 77 | * [Jackson JsonGenerator](https://tedblob.com/jackson-jsongenerator/) at TedBlob 78 | * Polymorphic type handling: 79 | * [Custom polymorphic type handling with Jackson](http://www.thomaskeller.biz/blog/2013/09/10/custom-polymorphic-type-handling-with-jackson/) (2013 Sep) 80 | * Data formats beyond JSON 81 | * [Writing CSV using Jackson CSVMapper & Mixin annotations](http://demeranville.com/writing-csv-using-jackson-csvmapper-mixin-annotations) 82 | * [Reading, Writing Java Properties with Jackson](https://medium.com/@cowtowncoder/reading-writing-java-properties-files-using-jackson-2-8-efd7a8da9d4c#.mv82no23b) 83 | * [Read YAML in Java with Jackson](https://dzone.com/articles/read-yaml-in-java-with-jackson) 84 | * Platform-specific Jackson integration 85 | * [Apache CXF](http://cxf.apache.org/) 86 | * [Configuring Snake Case naming](https://mahichir.wordpress.com/2015/07/08/cxf-configuration-to-produce-json-snake-case-underscore-case-formatted-data-using-jackson-json-library/) 87 | 88 | # Participating 89 | 90 | The easiest ways to participate is to join one of Jackson mailing lists (Jackson google groups): 91 | 92 | * [Jackson Announce](https://groups.google.com/forum/#!forum/jackson-announce): Announcement-only list for new Jackson releases, meetups and other events related to Jackson 93 | * [Jackson User](https://groups.google.com/forum/#!forum/jackson-user): List dedicated for discussion on Jackson usage 94 | * [Jackson Dev](https://groups.google.com/forum/#!forum/jackson-dev): List for developers of Jackson core components and modules, discussing implementation details, API changes. 95 | 96 | There are other related lists and forums as well: 97 | 98 | * [Smile Format Discussion](https://groups.google.com/forum/#!forum/smile-format-discussion): List for discussing details of the binary JSON format called [Smile](https://en.wikipedia.org/wiki/Smile_%28data_interchange_format%29) (see [Smile Specificat\ 99 | ion](http://wiki.fasterxml.com/SmileFormat)) 100 | * [Jackson Users](http://jackson-users.ning.com) is a Jackson-specific discussion forum for usage questions. 101 | 102 | # Sample code 103 | 104 | See [(External) Jackson Sample Code](../../wiki/ExternalJacksonSampleCode). 105 | 106 | # On Jackson versioning 107 | 108 | Note that there are two **major** Jackson versions: 1.x (1.0 - 1.9) and 2.x (2.0 - 2.13). 109 | These versions can co-exist as they are located in different Java packages and use different jar naming and Maven group/artifact ids. 110 | But this means that you have to make sure that all components in use have matching major versions: specifically, Jackson 2.x code does NOT understand or support Jackson 1.x annotations, or vice versa. 111 | 112 | Minor versions (like 2.1 and 2.2) are backwards compatible with respect to public API: old code should work without recompilation, if (but only if) it relies on external API; public methods, annotations. When overriding internal functionality, we try hard to maintain backwards compatibility between adjacent minor versions; need for changes is indicated by deprecating internal methods. Recompilation is thus recommended when extending by sub-classing, for example. 113 | 114 | # Misc other 115 | 116 | * [Jackson Github Hub](../../../jackson/) is the... The Hub for all stuff, including this project. 117 | --------------------------------------------------------------------------------