1<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 2<!-- NewPage --> 3<html lang="en"> 4<head> 5<!-- Generated by javadoc (version 1.7.0_79) on Thu Jul 07 10:49:27 PDT 2016 --> 6<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 7<title>JsonInclude (Jackson-annotations 2.8.0 API)</title> 8<meta name="date" content="2016-07-07"> 9<link rel="stylesheet" type="text/css" href="../../../../stylesheet.css" title="Style"> 10</head> 11<body> 12<script type="text/javascript"><!-- 13 if (location.href.indexOf('is-external=true') == -1) { 14 parent.document.title="JsonInclude (Jackson-annotations 2.8.0 API)"; 15 } 16//--> 17</script> 18<noscript> 19<div>JavaScript is disabled on your browser.</div> 20</noscript> 21<!-- ========= START OF TOP NAVBAR ======= --> 22<div class="topNav"><a name="navbar_top"> 23<!-- --> 24</a><a href="#skip-navbar_top" title="Skip navigation links"></a><a name="navbar_top_firstrow"> 25<!-- --> 26</a> 27<ul class="navList" title="Navigation"> 28<li><a href="../../../../com/fasterxml/jackson/annotation/package-summary.html">Package</a></li> 29<li class="navBarCell1Rev">Class</li> 30<li><a href="class-use/JsonInclude.html">Use</a></li> 31<li><a href="package-tree.html">Tree</a></li> 32<li><a href="../../../../deprecated-list.html">Deprecated</a></li> 33<li><a href="../../../../index-all.html">Index</a></li> 34<li><a href="../../../../help-doc.html">Help</a></li> 35</ul> 36</div> 37<div class="subNav"> 38<ul class="navList"> 39<li><a href="../../../../com/fasterxml/jackson/annotation/JsonIgnoreType.html" title="annotation in com.fasterxml.jackson.annotation"><span class="strong">Prev Class</span></a></li> 40<li><a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation"><span class="strong">Next Class</span></a></li> 41</ul> 42<ul class="navList"> 43<li><a href="../../../../index.html?com/fasterxml/jackson/annotation/JsonInclude.html" target="_top">Frames</a></li> 44<li><a href="JsonInclude.html" target="_top">No Frames</a></li> 45</ul> 46<ul class="navList" id="allclasses_navbar_top"> 47<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> 48</ul> 49<div> 50<script type="text/javascript"><!-- 51 allClassesLink = document.getElementById("allclasses_navbar_top"); 52 if(window==top) { 53 allClassesLink.style.display = "block"; 54 } 55 else { 56 allClassesLink.style.display = "none"; 57 } 58 //--> 59</script> 60</div> 61<div> 62<ul class="subNavList"> 63<li>Summary: </li> 64<li>Required | </li> 65<li><a href="#annotation_type_optional_element_summary">Optional</a></li> 66</ul> 67<ul class="subNavList"> 68<li>Detail: </li> 69<li><a href="#annotation_type_element_detail">Element</a></li> 70</ul> 71</div> 72<a name="skip-navbar_top"> 73<!-- --> 74</a></div> 75<!-- ========= END OF TOP NAVBAR ========= --> 76<!-- ======== START OF CLASS DATA ======== --> 77<div class="header"> 78<div class="subTitle">com.fasterxml.jackson.annotation</div> 79<h2 title="Annotation Type JsonInclude" class="title">Annotation Type JsonInclude</h2> 80</div> 81<div class="contentContainer"> 82<div class="description"> 83<ul class="blockList"> 84<li class="blockList"> 85<hr> 86<br> 87<pre><a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/Target.html?is-external=true" title="class or interface in java.lang.annotation">@Target</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/Target.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>={<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html?is-external=true#ANNOTATION_TYPE" title="class or interface in java.lang.annotation">ANNOTATION_TYPE</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html?is-external=true#METHOD" title="class or interface in java.lang.annotation">METHOD</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html?is-external=true#FIELD" title="class or interface in java.lang.annotation">FIELD</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html?is-external=true#TYPE" title="class or interface in java.lang.annotation">TYPE</a>,<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/ElementType.html?is-external=true#PARAMETER" title="class or interface in java.lang.annotation">PARAMETER</a>}) 88<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/Retention.html?is-external=true" title="class or interface in java.lang.annotation">@Retention</a>(<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/Retention.html?is-external=true#value()" title="class or interface in java.lang.annotation">value</a>=<a href="http://docs.oracle.com/javase/6/docs/api/java/lang/annotation/RetentionPolicy.html?is-external=true#RUNTIME" title="class or interface in java.lang.annotation">RUNTIME</a>) 89public @interface <span class="strong">JsonInclude</span></pre> 90<div class="block">Annotation used to indicate when value of the annotated property (when 91 used for a field, method or constructor parameter), or all 92 properties of the annotated class, is to be serialized. 93 Without annotation property values are always included, but by using 94 this annotation one can specify simple exclusion rules to reduce 95 amount of properties to write out. 96<p> 97 Note that the main inclusion criteria (one annotated with <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.html#value()"><code>value()</code></a>) 98 is checked on <b>Java object level</b>, for the annotated type, 99 and <b>NOT</b> on JSON output -- so even with <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html#NON_NULL"><code>JsonInclude.Include.NON_NULL</code></a> 100 it is possible that JSON null values are output, if object reference 101 in question is not `null`. An example is <a href="http://docs.oracle.com/javase/6/docs/api/java/util/concurrent/atomic/AtomicReference.html?is-external=true" title="class or interface in java.util.concurrent.atomic"><code>AtomicReference</code></a> 102 instance constructed to reference <code>null</code> value: such a value 103 would be serialized as JSON null, and not filtered out. 104<p> 105 To base inclusion on value of contained value(s), you will typically also need 106 to specify <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.html#content()"><code>content()</code></a> annotation; for example, specifying only 107 <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.html#value()"><code>value()</code></a> as <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html#NON_EMPTY"><code>JsonInclude.Include.NON_EMPTY</code></a> for a {link java.util.List} would 108 exclude <code>List</code>s with no Java elements, but would include <code>List</code>s 109 with `null` elements. To exclude Lists with only nulls, you would use both 110 annotations like so: 111<pre> 112public class Bean { 113 @JsonInclude(value=Include.NON_EMPTY, content=Include.NON_NULL) 114 public List<String> entries; 115} 116</pre> 117 Similarly you could further exclude Lists, Maps or arrays that only contain 118 "empty" elements, or "non-default" values (see <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html#NON_EMPTY"><code>JsonInclude.Include.NON_EMPTY</code></a> and 119 <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html#NON_DEFAULT"><code>JsonInclude.Include.NON_DEFAULT</code></a> for more details).</div> 120<dl><dt><span class="strong">Since:</span></dt> 121 <dd>2.0</dd></dl> 122</li> 123</ul> 124</div> 125<div class="summary"> 126<ul class="blockList"> 127<li class="blockList"> 128<!-- =========== ANNOTATION TYPE OPTIONAL MEMBER SUMMARY =========== --> 129<ul class="blockList"> 130<li class="blockList"><a name="annotation_type_optional_element_summary"> 131<!-- --> 132</a> 133<h3>Optional Element Summary</h3> 134<table class="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Optional Element Summary table, listing optional elements, and an explanation"> 135<caption><span>Optional Elements</span><span class="tabEnd"> </span></caption> 136<tr> 137<th class="colFirst" scope="col">Modifier and Type</th> 138<th class="colLast" scope="col">Optional Element and Description</th> 139</tr> 140<tr class="altColor"> 141<td class="colFirst"><code><a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation">JsonInclude.Include</a></code></td> 142<td class="colLast"><code><strong><a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.html#content()">content</a></strong></code> 143<div class="block">Inclusion rule to use for entries ("content") of annotated 144 <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>s; defaults to <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html#ALWAYS"><code>JsonInclude.Include.ALWAYS</code></a>.</div> 145</td> 146</tr> 147<tr class="rowColor"> 148<td class="colFirst"><code><a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation">JsonInclude.Include</a></code></td> 149<td class="colLast"><code><strong><a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.html#value()">value</a></strong></code> 150<div class="block">Inclusion rule to use for instances (values) of types (Classes) or 151 properties annotated.</div> 152</td> 153</tr> 154</table> 155</li> 156</ul> 157</li> 158</ul> 159</div> 160<div class="details"> 161<ul class="blockList"> 162<li class="blockList"> 163<!-- ============ ANNOTATION TYPE MEMBER DETAIL =========== --> 164<ul class="blockList"> 165<li class="blockList"><a name="annotation_type_element_detail"> 166<!-- --> 167</a> 168<h3>Element Detail</h3> 169<a name="value()"> 170<!-- --> 171</a> 172<ul class="blockList"> 173<li class="blockList"> 174<h4>value</h4> 175<pre>public abstract <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation">JsonInclude.Include</a> value</pre> 176<div class="block">Inclusion rule to use for instances (values) of types (Classes) or 177 properties annotated.</div> 178<dl> 179<dt>Default:</dt> 180<dd>com.fasterxml.jackson.annotation.JsonInclude.Include.ALWAYS</dd> 181</dl> 182</li> 183</ul> 184<a name="content()"> 185<!-- --> 186</a> 187<ul class="blockListLast"> 188<li class="blockList"> 189<h4>content</h4> 190<pre>public abstract <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation">JsonInclude.Include</a> content</pre> 191<div class="block">Inclusion rule to use for entries ("content") of annotated 192 <a href="http://docs.oracle.com/javase/6/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util"><code>Map</code></a>s; defaults to <a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html#ALWAYS"><code>JsonInclude.Include.ALWAYS</code></a>.</div> 193<dl><dt><span class="strong">Since:</span></dt> 194 <dd>2.5</dd></dl> 195<dl> 196<dt>Default:</dt> 197<dd>com.fasterxml.jackson.annotation.JsonInclude.Include.ALWAYS</dd> 198</dl> 199</li> 200</ul> 201</li> 202</ul> 203</li> 204</ul> 205</div> 206</div> 207<!-- ========= END OF CLASS DATA ========= --> 208<!-- ======= START OF BOTTOM NAVBAR ====== --> 209<div class="bottomNav"><a name="navbar_bottom"> 210<!-- --> 211</a><a href="#skip-navbar_bottom" title="Skip navigation links"></a><a name="navbar_bottom_firstrow"> 212<!-- --> 213</a> 214<ul class="navList" title="Navigation"> 215<li><a href="../../../../com/fasterxml/jackson/annotation/package-summary.html">Package</a></li> 216<li class="navBarCell1Rev">Class</li> 217<li><a href="class-use/JsonInclude.html">Use</a></li> 218<li><a href="package-tree.html">Tree</a></li> 219<li><a href="../../../../deprecated-list.html">Deprecated</a></li> 220<li><a href="../../../../index-all.html">Index</a></li> 221<li><a href="../../../../help-doc.html">Help</a></li> 222</ul> 223</div> 224<div class="subNav"> 225<ul class="navList"> 226<li><a href="../../../../com/fasterxml/jackson/annotation/JsonIgnoreType.html" title="annotation in com.fasterxml.jackson.annotation"><span class="strong">Prev Class</span></a></li> 227<li><a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation"><span class="strong">Next Class</span></a></li> 228</ul> 229<ul class="navList"> 230<li><a href="../../../../index.html?com/fasterxml/jackson/annotation/JsonInclude.html" target="_top">Frames</a></li> 231<li><a href="JsonInclude.html" target="_top">No Frames</a></li> 232</ul> 233<ul class="navList" id="allclasses_navbar_bottom"> 234<li><a href="../../../../allclasses-noframe.html">All Classes</a></li> 235</ul> 236<div> 237<script type="text/javascript"><!-- 238 allClassesLink = document.getElementById("allclasses_navbar_bottom"); 239 if(window==top) { 240 allClassesLink.style.display = "block"; 241 } 242 else { 243 allClassesLink.style.display = "none"; 244 } 245 //--> 246</script> 247</div> 248<div> 249<ul class="subNavList"> 250<li>Summary: </li> 251<li>Required | </li> 252<li><a href="#annotation_type_optional_element_summary">Optional</a></li> 253</ul> 254<ul class="subNavList"> 255<li>Detail: </li> 256<li><a href="#annotation_type_element_detail">Element</a></li> 257</ul> 258</div> 259<a name="skip-navbar_bottom"> 260<!-- --> 261</a></div> 262<!-- ======== END OF BOTTOM NAVBAR ======= --> 263<p class="legalCopy"><small>Copyright © 2008–2016 <a href="http://fasterxml.com/">FasterXML</a>. All rights reserved.</small></p> 264</body> 265</html> 266