• Home
  • History
  • Annotate
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:&nbsp;</li>
64<li>Required&nbsp;|&nbsp;</li>
65<li><a href="#annotation_type_optional_element_summary">Optional</a></li>
66</ul>
67<ul class="subNavList">
68<li>Detail:&nbsp;</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&lt;String&gt; 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">&nbsp;</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&nbsp;<a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation">JsonInclude.Include</a>&nbsp;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&nbsp;<a href="../../../../com/fasterxml/jackson/annotation/JsonInclude.Include.html" title="enum in com.fasterxml.jackson.annotation">JsonInclude.Include</a>&nbsp;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:&nbsp;</li>
251<li>Required&nbsp;|&nbsp;</li>
252<li><a href="#annotation_type_optional_element_summary">Optional</a></li>
253</ul>
254<ul class="subNavList">
255<li>Detail:&nbsp;</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 &#169; 2008&#x2013;2016 <a href="http://fasterxml.com/">FasterXML</a>. All rights reserved.</small></p>
264</body>
265</html>
266