This is an automated email from the ASF dual-hosted git repository.
jamesbognar pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/juneau.git
The following commit(s) were added to refs/heads/master by this push:
new d3aa042 Update Javadocs.
d3aa042 is described below
commit d3aa04219ca16df49665c3e99d6799053d8874bd
Author: JamesBognar <[email protected]>
AuthorDate: Mon Mar 5 21:44:56 2018 -0500
Update Javadocs.
---
.../org/apache/juneau/json/annotation/Json.java | 6 +-
.../Json.java => msgpack/package-info.java} | 61 +-
.../java/org/apache/juneau/msgpack/package.html | 63 --
juneau-doc/src/main/javadoc/overview.html | 1104 ++++++++------------
4 files changed, 440 insertions(+), 794 deletions(-)
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
index 754158e..5b5093b 100644
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
@@ -45,7 +45,7 @@ public @interface Json {
* <p>
* This annotation can be applied to beans as well as other objects
serialized to other types (e.g. strings).
*
- * <h5 class='section'>Example:</h5>
+ * <h5 class='figure'>Example:</h5>
* <p class='bcode'>
* <ja>@Json</ja>(wrapperAttr=<js>"myWrapper"</js>)
* <jk>public class</jk> MyBean {
@@ -54,7 +54,7 @@ public @interface Json {
* </p>
*
* <p>
- * Without the <ja>@Xml</ja> annotations, serializing this bean as JSON
would have produced the following...
+ * Without the <ja>@Json</ja> annotations, serializing this bean as
JSON would have produced the following...
* <p class='bcode'>
* {
* f1: 123
@@ -62,7 +62,7 @@ public @interface Json {
* </p>
*
* <p>
- * With the annotations, serializing this bean as XML produces the
following...
+ * With the annotations, serializing this bean as JSON produces the
following...
* <p class='bcode'>
* {
* myWrapper: {
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/package-info.java
old mode 100644
new mode 100755
similarity index 50%
copy from
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
copy to
juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/package-info.java
index 754158e..f42db43
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/json/annotation/Json.java
+++
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/package-info.java
@@ -10,66 +10,9 @@
// * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
express or implied. See the License for the *
// * specific language governing permissions and limitations under the
License. *
//
***************************************************************************************************************************
-package org.apache.juneau.json.annotation;
-
-import static java.lang.annotation.ElementType.*;
-import static java.lang.annotation.RetentionPolicy.*;
-
-import java.lang.annotation.*;
/**
- * Annotation for specifying various JSON options for the JSON serializers and
parsers.
- *
- * <p>
- * Can be applied to Java types.
- *
- * <p>
- * Can be used for the following:
- * <ul class='spaced-list'>
- * <li>
- * Wrap bean instances inside wrapper object (e.g.
<code>{'wrapperAttr':bean}</code>).
- * </ul>
+ * MessagePack Marshalling Support
*/
-@Documented
-@Target({TYPE})
-@Retention(RUNTIME)
-@Inherited
-public @interface Json {
+package org.apache.juneau.msgpack;
- /**
- * Wraps beans in a JSON object with the specified attribute name.
- *
- * <p>
- * Applies only to {@link ElementType#TYPE}.
- *
- * <p>
- * This annotation can be applied to beans as well as other objects
serialized to other types (e.g. strings).
- *
- * <h5 class='section'>Example:</h5>
- * <p class='bcode'>
- * <ja>@Json</ja>(wrapperAttr=<js>"myWrapper"</js>)
- * <jk>public class</jk> MyBean {
- * <jk>public int</jk> f1 = 123;
- * }
- * </p>
- *
- * <p>
- * Without the <ja>@Xml</ja> annotations, serializing this bean as JSON
would have produced the following...
- * <p class='bcode'>
- * {
- * f1: 123
- * }
- * </p>
- *
- * <p>
- * With the annotations, serializing this bean as XML produces the
following...
- * <p class='bcode'>
- * {
- * myWrapper: {
- * f1: 123
- * }
- * }
- * </p>
- */
- String wrapperAttr() default "";
-}
diff --git
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/package.html
b/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/package.html
deleted file mode 100644
index cdd9531..0000000
---
a/juneau-core/juneau-marshall/src/main/java/org/apache/juneau/msgpack/package.html
+++ /dev/null
@@ -1,63 +0,0 @@
-<!DOCTYPE HTML>
-<!--
-/***************************************************************************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file
- * distributed with this work for additional information regarding copyright
ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the "License"); you may not
use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
or implied. See the License for the
- * specific language governing permissions and limitations under the License.
- *
-
***************************************************************************************************************************/
- -->
-<html>
-<head>
- <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
- <style type="text/css">
- /* For viewing in Page Designer */
- @IMPORT url("../../../../../../javadoc.css");
-
- /* For viewing in REST interface */
- @IMPORT url("../htdocs/javadoc.css");
- body {
- margin: 20px;
- }
- </style>
- <script>
- /* Replace all @code and @link tags. */
- window.onload = function() {
- document.body.innerHTML =
document.body.innerHTML.replace(/\{\@code ([^\}]+)\}/g, '<code>$1</code>');
- document.body.innerHTML =
document.body.innerHTML.replace(/\{\@link (([^\}]+)\.)?([^\.\}]+)\}/g,
'<code>$3</code>');
- }
- </script>
-</head>
-<body>
-<p>MessagePack Marshalling Support</p>
-<script>
- function toggle(x) {
- var div = x.nextSibling;
- while (div != null && div.nodeType != 1)
- div = div.nextSibling;
- if (div != null) {
- var d = div.style.display;
- if (d == 'block' || d == '') {
- div.style.display = 'none';
- x.className += " closed";
- } else {
- div.style.display = 'block';
- x.className =
x.className.replace(/(?:^|\s)closed(?!\S)/g , '' );
- }
- }
- }
-</script>
-
-<a id='TOC'></a><h5 class='toc'>Table of Contents</h5>
-<ol class='toc'>
-</ol>
-
-</body>
-</html>
\ No newline at end of file
diff --git a/juneau-doc/src/main/javadoc/overview.html
b/juneau-doc/src/main/javadoc/overview.html
index b6510ea..dd4d170 100644
--- a/juneau-doc/src/main/javadoc/overview.html
+++ b/juneau-doc/src/main/javadoc/overview.html
@@ -123,63 +123,67 @@
<li><p><a class='doclink'
href='#juneau-marshall.BestPractices'>Best Practices</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.JsonDetails'>JSON Details</a></p>
<ol>
- <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.Methodology'>JSON Methodology</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.Serializers'>Serializers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.Parsers'>Parsers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.ConfigurableProperties'>Configurable
Properties</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.JsonMethodology'>JSON Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.JsonSerializers'>JSON Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.JsonParsers'>JSON Parsers</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.JsonAnnotation'>@Json Annotation</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.JsonDetails.JsonSchema'>JSON-Schema Support</a></p>
</ol>
<li><p><a class='doclink'
href='#juneau-marshall.XmlDetails'>XML Details</a></p>
<ol>
- <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.Methodology'>XML Methodology</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.Serializers'>Serializers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.Parsers'>Parsers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.ConfigurableProperties'>Configurable
Properties</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.XmlMethodology'>XML Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.XmlSerializers'>XML Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.XmlParsers'>XML Parsers</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.BeanTypeNameAnnotation'>@Bean(typeName)
Annotation</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.XmlChildNameAnnotation'>@Xml(childName)
Annotation</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.XmlFormatAnnotation'>@Xml(format)
Annotation</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.Namespaces'>Namespaces</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.UriProperties'>URI Properties</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.XmlDetails.XmlSchema'>XML-Schema Support</a></p>
</ol>
<li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails'>HTML Details</a></p>
<ol>
- <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.Methodology'>HTML Methodology</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.Serializers'>Serializers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.Parsers'>Parsers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.ConfigurableProperties'>Configurable
Properties</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.HtmlMethodology'>HTML Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.HtmlSerializers'>HTML Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.HtmlParsers'>HTML Parsers</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.HtmlAnnotation'>@Html Annotation</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.HtmlDetails.HtmlSchema'>HTML-Schema Support</a></p>
</ol>
<li><p><a class='doclink'
href='#juneau-marshall.UonDetails'>UON Details</a></p>
<ol>
- <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.Methodology'>UON Methodology</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.Serializers'>Serializers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.Parsers'>Parsers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.ConfigurableProperties'>Configurable
Properties</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.UonMethodology'>UON Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.UonSerializers'>UON Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UonDetails.UonParsers'>UON Parsers</a></p>
</ol>
<li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails'>URL-Encoding Details</a></p>
<ol>
- <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.Methodology'>URL-Encoding
Methodology</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.Serializers'>Serializers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.Parsers'>Parsers</a></p>
- <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.ConfigurableProperties'>Configurable
Properties</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingMethodology'>URL-Encoding
Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingSerializers'>URL-Encoding
Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingParsers'>URL-Encoding
Parsers</a></p>
<li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation'>@UrlEncoding
Annotation</a></p>
</ol>
+ <li><p><a class='doclink'
href='#juneau-marshall.MsgPackDetails'>MessagePack Details</a></p>
+ <ol>
+ <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.MsgPackMethodology'>MessagePack
Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.MspPackSerializers'>MessagePack
Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.UrlEncodingDetails.MsgPackParsers'>MessagePack
Parsers</a></p>
+ </ol>
+ <li><p><a class='doclink'
href='#juneau-marshall.SoapDetails'>SOAP Details</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.CsvDetails'>CSV Details</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall.JsoDetails'>Java Serialized Object Details</a></p>
</ol>
<li><p class='toc2'><a class='doclink'
href='#juneau-marshall-rdf'><i>juneau-marshall-rdf</i></a></p>
<ol>
<li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails'>RDF Details</a></p>
<ol>
- <li><p><a class='doclink'
href='#juneau-marshall.RdfDetails.Methodology'>RDF Methodology</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.Serializers'>Serializers</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.Parsers'>Parsers</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.ConfigurableProperties'>Configurable
Properties</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.RdfAnnotation'>@Rdf Annotation</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.Namespaces'>Namespaces</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.UriProperties'>URI Properties</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.RootProperty'>Root Property</a></p>
- <li><p><a class='doclink'
href='juneau-marshall-rdf.RdfDetails.TypedLiterals'>Typed Literals</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.RdfMethodology'>RDF Methodology</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.RdfSerializers'>RDF Serializers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.RdfParsers'>RDF Parsers</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.RdfAnnotation'>@Rdf Annotation</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.Namespaces'>Namespaces</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.UriProperties'>URI Properties</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.RootProperty'>Root Property</a></p>
+ <li><p><a class='doclink'
href='#juneau-marshall-rdf.RdfDetails.TypedLiterals'>Typed Literals</a></p>
</ol>
</ol>
<li><p class='toc2'><a class='doclink'
href='#juneau-dto'><i>juneau-dto</i></a></p>
@@ -1026,28 +1030,19 @@
<br>For example, JSON has the following predefined
reusable serializers and parsers:
</p>
<ul class='doctree'>
- <li class='jc'>
- {@link org.apache.juneau.json.JsonSerializer}
+ <li class='jc'>{@link
org.apache.juneau.json.JsonSerializer}
<ul>
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE_SAFE
DEFAULT_LAX_READABLE_SAFE}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE_SAFE
DEFAULT_LAX_READABLE_SAFE}
</ul>
</li>
- <li class='jc'>
- {@link org.apache.juneau.json.JsonParser}
+ <li class='jc'>{@link
org.apache.juneau.json.JsonParser}
<ul>
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
- <li class='jf'>
- {@link
org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
</ul>
</li>
</ul>
@@ -1069,95 +1064,86 @@
.quoteChar(<js>'"'</js>) <jc>// Use a different quote
character.</jc>
.build();
</p>
-
- <h5 class='topic'>Additional Information</h5>
<p>
- The following is a list of all configurable properties
across all serializers and parsers.
+ The following properties are common to all serializers
and parsers:
</p>
<ul class='doctree'>
- <li class='jc'>
- {@link org.apache.juneau.BeanContext}
- - Properties associated with handling beans on
serializers and parsers.
- <ul>
- <li class='jc'>
- {@link
org.apache.juneau.serializer.Serializer}
- - Configurable properties
common to all serializers.
- <ul>
- <li class='jc'>
- {@link
org.apache.juneau.html.HtmlSerializer}
- - Configurable
properties on the HTML serializer.
- <ul>
- <li
class='jc'>
-
{@link org.apache.juneau.html.HtmlDocSerializer}
-
- Configurable properties on the HTML document serializer.
- </ul>
- </li>
- <li class='jic'>
- {@link
org.apache.juneau.jena.RdfCommon}
- - Configurable
properties common to the RDF serializers and parsers.
- <ul>
- <li
class='jc'>
-
{@link org.apache.juneau.jena.RdfSerializer}
-
- Configurable properties on the RDF serializers.
- </ul>
- </li>
- <li class='jc'>
- {@link
org.apache.juneau.json.JsonSerializer}
- - Configurable
properties on the JSON serializer.
- <li class='jc'>
- {@link
org.apache.juneau.msgpack.MsgPackSerializer}
- - Configurable
properties on the MessagePack serializer.
- <li class='jc'>
- {@link
org.apache.juneau.soap.SoapXmlSerializer}
- - Configurable
properties on the SOAP/XML serializer.
- <li class='jc'>
- {@link
org.apache.juneau.uon.UonSerializer}
- - Configurable
properties on the URL-Encoding and UON serializers.
- <li class='jc'>
- {@link
org.apache.juneau.xml.XmlSerializer}
- - Configurable
properties on the XML serializer.
- </ul>
- </li>
- <li class='jc'>
- {@link
org.apache.juneau.parser.Parser}
- - Configurable properties
common to all parsers.
- <ul>
- <li class='jc'>
- {@link
org.apache.juneau.html.HtmlParser}
- - Configurable
properties on the HTML parser.
- <li class='jic'>
- {@link
org.apache.juneau.jena.RdfCommon}
- - Configurable
properties common to the RDF serializers and parsers.
- <ul>
- <li
class='jc'>
- {@link
org.apache.juneau.jena.RdfParser}
- -
Configurable properties on the RDF parsers.
- </ul>
- </li>
- <li class='jc'>
- {@link
org.apache.juneau.json.JsonParser}
- - Configurable
properties on the JSON parser.
- <li class='jc'>
- {@link
org.apache.juneau.msgpack.MsgPackParser}
- - Configurable
properties on the MessagePack parser.
- <li class='jc'>
- {@link
org.apache.juneau.uon.UonParser}
- - Configurable
properties on the URL-Encoding and UON parsers.
- <li class='jc'>
- {@link
org.apache.juneau.xml.XmlParser}
- - Configurable
properties on the XML parser.
- </ul>
- </li>
- <li class='jc'>
- {@link
org.apache.juneau.rest.RestContext}
- - Configurable properties on
the REST servlet.
- </li>
- <li class='jc'>
- {@link
org.apache.juneau.rest.client.RestClient}
- - Configurable properties on
the REST client.
- </li>
- </ul>
- </li>
+ <li class='jc'>{@link org.apache.juneau.BeanContext}
+ <ul>
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanClassVisibility BEAN_beanClassVisibility}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanConstructorVisibility
BEAN_beanConstructorVisibility}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanDictionary BEAN_beanDictionary}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanFieldVisibility BEAN_beanFieldVisibility}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanFilters BEAN_beanFilters}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanMapPutReturnsOldValue
BEAN_beanMapPutReturnsOldValue}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanMethodVisibility
BEAN_beanMethodVisibility}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beansRequireDefaultConstructor
BEAN_beansRequireDefaultConstructor}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beansRequireSerializable
BEAN_beansRequireSerializable}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beansRequireSettersForGetters
BEAN_beansRequireSettersForGetters}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beansRequireSomeProperties
BEAN_beansRequireSomeProperties}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_beanTypePropertyName
BEAN_beanTypePropertyName}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_debug BEAN_debug}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_excludeProperties BEAN_excludeProperties}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnGetters
BEAN_ignoreInvocationExceptionsOnGetters}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_ignoreInvocationExceptionsOnSetters
BEAN_ignoreInvocationExceptionsOnSetters}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_ignorePropertiesWithoutSetters
BEAN_ignorePropertiesWithoutSetters}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_ignoreUnknownBeanProperties
BEAN_ignoreUnknownBeanProperties}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_ignoreUnknownNullBeanProperties
BEAN_ignoreUnknownNullBeanProperties}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_implClasses BEAN_implClasses}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_includeProperties BEAN_includeProperties}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_locale BEAN_locale}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_mediaType BEAN_mediaType}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_notBeanClasses BEAN_notBeanClasses}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_notBeanPackages BEAN_notBeanPackages}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_pojoSwaps BEAN_pojoSwaps}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_propertyNamer BEAN_propertyNamer}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_sortProperties BEAN_sortProperties}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_timeZone BEAN_timeZone}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_useInterfaceProxies BEAN_useInterfaceProxies}
+ <li class='jf'>{@link
org.apache.juneau.BeanContext#BEAN_useJavaBeanIntrospector
BEAN_useJavaBeanIntrospector}
+ </ul>
+ </ul>
+ <p>
+ The following properties are also common to all
serializers:
+ </p>
+ <ul class='doctree'>
+ <li class='jc'>{@link
org.apache.juneau.serializer.Serializer}
+ <ul>
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_abridged SERIALIZER_abridged}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_addBeanTypeProperties
SERIALIZER_addBeanTypeProperties}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_detectRecursions
SERIALIZER_detectRecursions}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_ignoreRecursions
SERIALIZER_ignoreRecursions}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_initialDepth
SERIALIZER_initialDepth}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_listener SERIALIZER_listener}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_maxDepth SERIALIZER_maxDepth}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_maxIndent
SERIALIZER_maxIndent}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_quoteChar
SERIALIZER_quoteChar}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_sortCollections
SERIALIZER_sortCollections}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_sortMaps SERIALIZER_sortMaps}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyCollections
SERIALIZER_trimEmptyCollections}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_trimEmptyMaps
SERIALIZER_trimEmptyMaps}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_trimNullProperties
SERIALIZER_trimNullProperties}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_trimStrings
SERIALIZER_trimStrings}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_uriContext
SERIALIZER_uriContext}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_uriRelativity
SERIALIZER_uriRelativity}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_uriResolution
SERIALIZER_uriResolution}
+ <li class='jf'>{@link
org.apache.juneau.serializer.Serializer#SERIALIZER_useWhitespace
SERIALIZER_useWhitespace}
+ </ul>
+ </ul>
+ <p>
+ The following properties are also common to all parsers:
+ </p>
+ <ul class='doctree'>
+ <li class='jc'>{@link org.apache.juneau.parser.Parser}
+ <ul>
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_autoCloseStreams PARSER_autoCloseStreams}
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_fileCharset PARSER_fileCharset}
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_inputStreamCharset
PARSER_inputStreamCharset}
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_listener PARSER_listener}
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_strict PARSER_strict}
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_trimStrings PARSER_trimStrings}
+ <li class='jf'>{@link
org.apache.juneau.parser.Parser#PARSER_unbuffered PARSER_unbuffered}
+ </ul>
</ul>
</div>
@@ -3341,7 +3327,7 @@
default.
</p>
<p>
- Starting back with our original JSON:
+ For example, given the following JSON:
</p>
<p class='bcode'>
{
@@ -3902,110 +3888,81 @@
highly-efficient state machine.
<br>Likewise, the JSON parser creates POJOs directly
from JSON without the need for intermediate DOM objects.
</p>
-
<p>
- The example shown here is from the Address Book
resource located in the
- <code>org.apache.juneau.sample.war</code> application.
- <br>The POJO model consists of a <code>List</code> of
<code>Person</code> beans, with each <code>Person</code>
- containing zero or more <code>Address</code> beans.
+ The following example shows JSON for a typical bean:
</p>
- <p>
- When you point a browser at
<code>/sample/addressBook</code>, the POJO is rendered as HTML:
- </p>
- <img class='bordered' src="doc-files/Example_HTML.png">
- <p>
- By appending
<code>?Accept=<i>mediaType</i>&plainText=true</code> to the URL, you can
view the data in
- the various supported JSON formats:
- </p>
-
- <h5 class='figure'>Normal JSON</h5>
- <img class='bordered' src="doc-files/Example_JSON.png">
+ <h5 class='figure'>Sample Beans</h5>
+ <p class='bcode'>
+ <jk>public class</jk> Person {
- <h5 class='figure'>Simple JSON</h5>
- <img class='bordered' src="doc-files/Example_JSONSimple.png">
+ <jc>// Bean properties</jc>
+ <jk>public</jk> String <jf>name</jf>;
+ <ja>@Swap</ja>(CalendarSwap.ISO8601DTZ.<jk>class</jk>)
<jk>public</jk> Calendar <jf>birthDate</jf>;
+ <jk>public</jk> List<Address> <jf>addresses</jf>;
+
+ <jc>// Getters/setters omitted</jc>
+ }
+
+ <jk>public class</jk> Address {
- <p>
- In addition to serializing POJOs to JSON, Juneau
includes support for serializing POJO metamodels to
- JSON Schema.
- </p>
-
- <h5 class='figure'>JSON Schema</h5>
- <img class='bordered' src="doc-files/Example_JSONSchema.png">
-
- <p>
- The JSON data type produced depends on the Java object
type being serialized.
+ <jc>// Bean properties</jc>
+ <jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
+ <jk>public</jk> StateEnum <jf>state</jf>;
+ <jk>public int</jk> <jf>zip</jf>;
+ <jk>public boolean</jk> <jf>isCurrent</jf>;
+
+ <jc>// Getters/setters omitted</jc>
+ }
</p>
- <ul class='spaced-list'>
- <li>
- Primitives and primitive objects are converted
to JSON primitives.
- <li>
- Beans and Maps are converted to JSON objects.
- <li>
- Collections and arrays are converted to JSON
arrays.
- <li>
- Anything else is converted to JSON strings.
- </ul>
-
- <h5 class='topic'>Examples:</h5>
- <table class='styled'>
- <tr>
- <th>POJO type</th>
- <th>Example</th>
- <th>Serialized form</th>
- </tr>
- <tr>
- <td>String</td>
-
<td><code>serializer.serialize(<js>"foobar"</js>);</code></td>
- <td><code><js>'foobar'</js></code>
- </tr>
- <tr>
- <td>Number</td>
- <td><code>serializer.serialize(123);</code></td>
- <td><code><jk>123</jk></code>
- </tr>
- <tr>
- <td>Boolean</td>
-
<td><code>serializer.serialize(<jk>true</jk>);</code></td>
- <td><code><jk>true</jk></code>
- </tr>
- <tr>
- <td>Null</td>
-
<td><code>serializer.serialize(<jk>null</jk>);</code></td>
- <td><code><jk>null</jk></code>
- </tr>
- <tr>
- <td>Beans with properties of any type on this
list</td>
- <td><code>serializer.serialize(<jk>new</jk>
MyBean());</code></td>
-
<td><code>{p1:<js>'val1'</js>,p2:<jk>true</jk>}</code>
- </tr>
- <tr>
- <td>Maps with values of any type on this
list</td>
- <td><code>serializer.serialize(<jk>new</jk>
TreeMap());</code></td>
-
<td><code>{key1:<js>'val1'</js>,key2:<jk>true</jk>}</code>
- </tr>
- <tr>
- <td>Collections and arrays of any type on this
list</td>
- <td><code>serializer.serialize(<jk>new</jk>
Object[]{1,<js>"foo"</js>,<jk>true</jk>});</code></td>
- <td><code>[1,'foo',true]</code>
- </tr>
- </table>
- <p>
- In addition, swaps can be used to convert
non-serializable POJOs into serializable forms, such as converting
- <code>Calendar</code> object to ISO8601 strings, or
<code><jk>byte</jk>[]</code> arrays to Base-64
- encoded strings.
- <br>These swaps can be associated at various levels:
+ <h5 class='figure'>Sample Code</h5>
+ <p class='bcode'>
+ Person p = <jk>new</jk> Person()
+ .name(<js>"John Smith"</js>)
+ .birthDate(<js>"1946-08-12T00:00:00Z"</js>)
+ .addresses(
+ <jk>new</jk> Address()
+ .street(<js>"100 Main Street"</js>)
+ .city(<js>"Anywhereville"</js>)
+ .state(<jsf>NY</jsf>)
+ .zip(12345)
+ .isCurrent(<jk>true</jk>);
+ );
</p>
- <ul class='spaced-list'>
- <li>
- On serializer and parser instances to handle
all objects of the class type globally.
- <li>
- On classes through the
<code><ja>@Bean</ja></code> annotation.
- <li>
- On bean properties through the
<code><ja>@BeanProperty</ja></code> annotations.
- </ul>
-
+ <h5 class='figure'>Normal JSON</h5>
+ <p class='bcode'>
+ {
+ <js>"name"</js>: <js>"John Smith"</js>,
+ <js>"birthDate"</js>: <js>"1946-08-12T00:00:00Z"</js>,
+ <js>"addresses"</js>: [
+ {
+ <js>"street"</js>: <js>"100 Main Street"</js>,
+ <js>"city"</js>: <js>"Anywhereville"</js>,
+ <js>"state"</js>: <js>"NY"</js>,
+ <js>"zip"</js>: 12345,
+ <js>"isCurrent"</js>: <jk>true</jk>
+ }
+ ]
+ }
+ </p>
+ <h5 class='figure'>Lax JSON</h5>
+ <p class='bcode'>
+ {
+ name: <js>'John Smith'</js>,
+ birthDate: <js>'1946-08-12T00:00:00Z'</js>,
+ addresses: [
+ {
+ street: <js>'100 Main Street'</js>,
+ city: <js>'Anywhereville'</js>,
+ state: <js>'NY'</js>,
+ zip: 12345,
+ isCurrent: <jk>true</jk>
+ }
+ ]
+ }
+ </p>
+
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.JsonDetails.Methodology"></a>
+ <a id="juneau-marshall.JsonDetails.JsonMethodology"></a>
<h4 class='topic' onclick='toggle(this)'>2.16.1 - JSON
Methodology</h4>
<div class='topic'>
<p>
@@ -4022,47 +3979,55 @@
Anything else is converted to JSON
strings.
</ul>
- <h5 class='topic'>Examples:</h5>
- <table class='styled'>
+ <h5 class='figure'>Data type conversions:</h5>
+ <table class='styled' style='max-width:800px;'>
<tr>
<th>POJO type</th>
+ <th>JSON type</th>
<th>Example</th>
<th>Serialized form</th>
</tr>
<tr>
<td>String</td>
-
<td><code>serializer.serialize(<js>"foobar"</js>);</code></td>
+ <td>String</td>
+
<td><code>serialize(<js>"foobar"</js>);</code></td>
<td><code><js>'foobar'</js></code>
</tr>
<tr>
<td>Number</td>
-
<td><code>serializer.serialize(123);</code></td>
- <td><code><jk>123</jk></code>
+ <td>Number</td>
+ <td><code>serialize(123);</code></td>
+ <td><code>123</code>
</tr>
<tr>
<td>Boolean</td>
-
<td><code>serializer.serialize(<jk>true</jk>);</code></td>
+ <td>Boolean</td>
+
<td><code>serialize(<jk>true</jk>);</code></td>
<td><code><jk>true</jk></code>
</tr>
<tr>
<td>Null</td>
-
<td><code>serializer.serialize(<jk>null</jk>);</code></td>
+ <td>Null</td>
+
<td><code>serialize(<jk>null</jk>);</code></td>
<td><code><jk>null</jk></code>
</tr>
<tr>
<td>Beans with properties of any type
on this list</td>
-
<td><code>serializer.serialize(<jk>new</jk> MyBean());</code></td>
+ <td>Object</td>
+ <td><code>serialize(<jk>new</jk>
MyBean());</code></td>
<td><code>{p1:<js>'val1'</js>,p2:<jk>true</jk>}</code>
</tr>
<tr>
<td>Maps with values of any type on
this list</td>
-
<td><code>serializer.serialize(<jk>new</jk> TreeMap());</code></td>
+ <td>Object</td>
+ <td><code>serialize(<jk>new</jk>
TreeMap());</code></td>
<td><code>{key1:<js>'val1'</js>,key2:<jk>true</jk>}</code>
</tr>
<tr>
<td>Collections and arrays of any type
on this list</td>
-
<td><code>serializer.serialize(<jk>new</jk>
Object[]{1,<js>"foo"</js>,<jk>true</jk>});</code></td>
- <td><code>[1,'foo',true]</code>
+ <td>Array</td>
+ <td><code>serialize(<jk>new</jk>
Object[]{1,<js>"foo"</js>,<jk>true</jk>});</code></td>
+
<td><code>[1,<js>'foo'</js>,<jk>true</jk>]</code>
</tr>
</table>
<p>
@@ -4073,91 +4038,67 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.JsonDetails.Serializers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.16.2 -
Serializers</h4>
+ <a id="juneau-marshall.JsonDetails.JsonSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.16.2 - JSON
Serializers</h4>
<div class='topic'>
<p>
- {@link org.apache.juneau.json.JsonSerializer}
is the class used to convert POJOs to JSON.
- <br>{@link
org.apache.juneau.json.JsonSchemaSerializer} is the class used to generate
JSON-Schema from POJOs.
+ The {@link
org.apache.juneau.json.JsonSerializer} class is used to serialize POJOs into
JSON.
</p>
<p>
- The JSON serializer includes several
configurable settings.
- <br>Static reusable instances of Json
serializers are provided with commonly-used settings:
+ In addition to the common <a class='doclink'
href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a>,
+ the JSON serializer provides the following
settings:
</p>
- <ul class='spaced-list'>
- <li>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT} - All default settings
- <li>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX} - Single quotes, only quote
attributes when
- necessary.
- <li>
- {@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE} - Readable output.
+ <ul class='doctree'>
+ <li class='jc'>{@link
org.apache.juneau.json.JsonSerializer}
+ <ul>
+ <li>{@link
org.apache.juneau.json.JsonSerializer#JSON_addBeanTypeProperties
JSON_addBeanTypeProperties}
+ <li>{@link
org.apache.juneau.json.JsonSerializer#JSON_addBeanTypeProperties
JSON_addBeanTypeProperties}
+ <li>{@link
org.apache.juneau.json.JsonSerializer#JSON_simpleMode JSON_simpleMode}
+ </ul>
</ul>
-
- <h5 class='topic'>Notes about examples</h5>
- <p>
- The examples shown in this document will use
single-quote, readable settings.
- <br>For brevity, the examples will use public
fields instead of getters/setters to reduce the size of the examples.
- <br>In the real world, you'll typically want to
use standard bean getters and setters.
- </p>
- <p>
- To start off simple, we'll begin with the
following simplified bean and build upon it.
- </p>
- <p class='bcode'>
- <jk>public class</jk> Person {
- <jc>// Bean properties</jc>
- <jk>public int</jk> <jf>id</jf>;
- <jk>public</jk> String <jf>name</jf>;
-
- <jc>// Bean constructor (needed by parser)</jc>
- <jk>public</jk> Person() {}
-
- <jc>// Normal constructor</jc>
- <jk>public</jk> Person(<jk>int</jk> id, String name) {
- <jk>this</jk>.<jf>id</jf> = id;
- <jk>this</jk>.<jf>name</jf> = name;
- }
- }
- </p>
- <p>
- The following code shows how to convert this to
simple JSON:
- </p>
- <p class='bcode'>
- <jc>// Use serializer with readable output, simple mode.</jc>
- JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>;
-
- <jc>// Create our bean.</jc>
- Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
-
- <jc>// Serialize the bean to JSON.</jc>
- String json = s.serialize(p);
- </p>
- <p>
- We could have also created a new serializer
with the same settings using the following code:
- </p>
- <p class='bcode'>
- JsonSerializer s =
JsonSerializer.<jsm>create</jsm>().simple().ws().sq().build();
- </p>
-
<p>
- The code above produces the following output:
- </p>
- <p class='bcode'>
- {
- id: <jk>1</jk>,
- name: <js>'John Smith'</js>
- }
+ The following predefined serializers are
provided for convenience:
</p>
+ <ul class='doctree'>
+ <li class='jc'>{@link
org.apache.juneau.json.JsonSerializer}
+ <ul>
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT DEFAULT}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX DEFAULT_LAX}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE DEFAULT_LAX_READABLE}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_LAX_READABLE_SAFE
DEFAULT_LAX_READABLE_SAFE}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonSerializer#DEFAULT_READABLE DEFAULT_READABLE}
+ </ul>
+ </ul>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.JsonDetails.Parsers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.16.3 - Parsers</h4>
+ <a id="juneau-marshall.JsonDetails.JsonParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.16.3 - JSON
Parsers</h4>
<div class='topic'>
<p>
- The {@link org.apache.juneau.json.JsonParser}
class is the class used to parse JSON back into POJOs.
+ The {@link org.apache.juneau.json.JsonParser}
class is used to parse JSON into POJOs.
</p>
<p>
+ In addition to the common <a class='doclink'
href='#juneau-marshall.ConfigurableProperties'>Configurable Properties</a>,
+ the JSON parser provides the following settings:
+ </p>
+ <ul class='doctree'>
+ <li class='jc'>{@link
org.apache.juneau.json.JsonParser}
+ <ul>
+ <li>{@link
org.apache.juneau.json.JsonParser#JSON_validateEnd JSON_validateEnd}
+ </ul>
+ </ul>
+ <p>
+ The following predefined parsers are provided
for convenience:
+ </p>
+ <ul class='doctree'>
+ <li class='jc'>{@link
org.apache.juneau.json.JsonParser}
+ <ul>
+ <li class='jf'>{@link
org.apache.juneau.json.JsonParser#DEFAULT DEFAULT}
+ <li class='jf'>{@link
org.apache.juneau.json.JsonParser#DEFAULT_STRICT DEFAULT_STRICT}
+ </ul>
+ </ul>
+ <p>
The JSON parser supports ALL valid JSON,
including:
</p>
<ul class='spaced-list'>
@@ -4172,112 +4113,54 @@
<li>
Concatenated strings.
</ul>
+ </div>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.JsonDetails.JsonAnnotation"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.16.4 - @Json
Annotation</h4>
+ <div class='topic'>
<p>
- A static reusable instance of
<code>JsonParser</code> is also provided for convenience:
- </p>
- <ul>
- <li>{@link
org.apache.juneau.json.JsonParser#DEFAULT}
- </ul>
+ The {@link
org.apache.juneau.json.annotation.Json#wrapperAttr() @Json(wrapperAttr)}
annotation
+ can be used to wrap beans inside a JSON object
with a specified attribute name.
+ </p>
<p>
- Let's build upon the previous example and parse
the generated JSON back into the original bean.
- <br>We start with the JSON that was generated.
+ The annotation can be applied to beans as well
as other objects serialized to other types (e.g. strings).
</p>
- <p class='bcode'>
- <jc>// Use serializer with readable output, simple mode.</jc>
- JsonSerializer s = JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>;
-
- <jc>// Create our bean.</jc>
- Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>,
<js>"http://sample/addressBook/person/1"</js>,
- <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
- Address a = <jk>new</jk> Address();
- a.<jf>uri</jf> = <jk>new</jk>
URI(<js>"http://sample/addressBook/address/1"</js>);
- a.<jf>personUri</jf> = <jk>new</jk>
URI(<js>"http://sample/addressBook/person/1"</js>);
- a.<jf>id</jf> = 1;
- a.<jf>street</jf> = <js>"100 Main Street"</js>;
- a.<jf>city</jf> = <js>"Anywhereville"</js>;
- a.<jf>state</jf> = <js>"NY"</js>;
- a.<jf>zip</jf> = 12345;
- a.<jf>isCurrent</jf> = <jk>true</jk>;
- p.<jf>addresses</jf>.add(a);
-
- <jc>// Serialize the bean to JSON.</jc>
- String json = s.serialize(p);
+ <h5 class='figure'>Example:</h5>
+ <p class='bcode' style='width:800px;'>
+ <ja>@Json</ja>(wrapperAttr=<js>"personBean"</js>)
+ <jk>public class</jk> Person {
+ <jk>public</jk> String <jf>name</jf> = <js>"John Smith"</js>;
+ }
</p>
<p>
- This code produced the following:
+ The following shows the JSON representation
with and without the annotation present:
</p>
- <p class='bcode'>
+ <table class='styled' style='width:800px;'>
+ <tr>
+ <th>Without annotation</th>
+ <th>With annotation</th>
+ </tr>
+ <tr>
+ <td class='code'>
{
- id: <jk>1</jk>,
- name: <js>'John Smith'</js>,
- uri: <js>'http://sample/addressBook/person/1'</js>,
- addressBookUri: <js>'http://sample/addressBook'</js>,
- birthDate: <js>'1946-08-12T00:00:00Z'</js>,
- addresses: [
- {
- uri:
<js>'http://sample/addressBook/address/1'</js>,
- personUri:
<js>'http://sample/addressBook/person/1'</js>,
- id: <jk>1</jk>,
- street: <js>'100 Main Street'</js>,
- city: <js>'Anywhereville'</js>,
- state: <js>'NY'</js>,
- zip: <jk>12345</jk>,
- isCurrent: <jk>true</jk>
- }
- ]
+ name: <js>'John Smith'</js>
}
- </p>
- <p>
- The code to convert this back into a bean is:
- </p>
- <p class='bcode'>
- <jc>// Parse it back into a bean using the reusable
JSON parser.</jc>
- Person p = JsonParser.<jsf>DEFAULT</jsf>.parse(json,
Person.<jk>class</jk>);
-
- <jc>// Render it back as JSON.</jc>
- json =
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.serialize(p);
- </p>
- <p>
- We print it back out to JSON to show that all
the data has been preserved:
- </p>
- <p class='bcode'>
+ </td>
+ <td class='code'>
{
- id: <jk>1</jk>,
- name: <js>'John Smith'</js>,
- uri: <js>'http://sample/addressBook/person/1'</js>,
- addressBookUri: <js>'http://sample/addressBook'</js>,
- birthDate: <js>'1946-08-12T00:00:00Z'</js>,
- addresses: [
- {
- uri:
<js>'http://sample/addressBook/address/1'</js>,
- personUri:
<js>'http://sample/addressBook/person/1'</js>,
- id: <jk>1</jk>,
- street: <js>'100 Main Street'</js>,
- city: <js>'Anywhereville'</js>,
- state: <js>'NY'</js>,
- zip: <jk>12345</jk>,
- isCurrent: <jk>true</jk>
- }
- ]
- }
- </p>
- </div>
-
- <!--
=======================================================================================================
-->
- <a id="juneau-marshall.JsonDetails.ConfigurableProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>2.16.4 - Configurable
Properties</h4>
- <div class='topic'>
- </div>
-
- <!--
=======================================================================================================
-->
- <a id="juneau-marshall.JsonDetails.JsonAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.16.5 - @Json
Annotation</h4>
- <div class='topic'>
+ personBean: {
+ name: <js>'John Smith'</js>
+ }
+ }
+ </td>
+ </tr>
+ </table>
</div>
<!--
=======================================================================================================
-->
<a id="juneau-marshall.JsonDetails.JsonSchema"></a>
- <h4 class='topic' onclick='toggle(this)'>2.16.6 - JSON-Schema
Support</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.16.5 - JSON-Schema
Support</h4>
<div class='topic'>
<p>
Juneau provides the {@link
org.apache.juneau.json.JsonSchemaSerializer} class for generating JSON-Schema
@@ -4290,42 +4173,28 @@
<i>Note:</i> As of this writing, JSON-Schema
has not been standardized, so the output generated by the
schema serializer may be subject to future
modifications.
</p>
- <p>
- Lets start with the classes from the previous
examples:
- </p>
+ <h5 class='figure'>Sample Beans</h5>
<p class='bcode'>
<jk>public class</jk> Person {
+
<jc>// Bean properties</jc>
- <jk>public int</jk> <jf>id</jf>;
<jk>public</jk> String <jf>name</jf>;
- <jk>public</jk> URI <jf>uri</jf>;
- <jk>public</jk> URI <jf>addressBookUri</jf>;
-
<ja>@BeanProperty</ja>(swap=CalendarSwap.ISO8601DTZ.<jk>class</jk>)
<jk>public</jk> Calendar <jf>birthDate</jf>;
- <jk>public</jk> LinkedList<Address> <jf>addresses</jf> =
<jk>new</jk> LinkedList<Address>();
-
- <jc>// Bean constructor (needed by parser)</jc>
- <jk>public</jk> Person() {}
-
- <jc>// Normal constructor</jc>
- <jk>public</jk> Person(<jk>int</jk> id, String name, String
uri, String addressBookUri, String birthDate) <jk>throws</jk> Exception {
- <jk>this</jk>.<jf>id</jf> = id;
- <jk>this</jk>.<jf>name</jf> = name;
- <jk>this</jk>.<jf>uri</jf> = <jk>new</jk> URI(uri);
- <jk>this</jk>.<jf>addressBookUri</jf> = <jk>new</jk>
URI(addressBookUri);
- <jk>this</jk>.<jf>birthDate</jf> = <jk>new</jk>
GregorianCalendar();
-
<jk>this</jk>.<jf>birthDate</jf>.setTime(DateFormat.getDateInstance(DateFormat.<jsf>MEDIUM</jsf>).parse(birthDate));
- }
+ <jk>public</jk> Calendar <jf>birthDate</jf>;
+ <jk>public</jk> List<Address> <jf>addresses</jf>;
+
+ <jc>// Getters/setters omitted</jc>
}
-
+
<jk>public class</jk> Address {
+
<jc>// Bean properties</jc>
- <jk>public</jk> URI <jf>uri</jf>;
- <jk>public</jk> URI <jf>personUri</jf>;
- <jk>public int</jk> <jf>id</jf>;
- <jk>public</jk> String <jf>street</jf>, <jf>city</jf>,
<jf>state</jf>;
+ <jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
+ <jk>public</jk> StateEnum <jf>state</jf>;
<jk>public int</jk> <jf>zip</jf>;
<jk>public boolean</jk> <jf>isCurrent</jf>;
- }
+
+ <jc>// Getters/setters omitted</jc>
+ }
</p>
<p>
The code for creating our POJO model and
generating JSON-Schema is shown below:
@@ -4333,49 +4202,23 @@
<p class='bcode'>
<jc>// Get the schema serializer for one of the default JSON
serializers.</jc>
JsonSchemaSerializer s =
JsonSerializer.<jsf>DEFAULT_LAX_READABLE</jsf>.getSchemaSerializer();
-
- <jc>// Create our bean.</jc>
- Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>,
<js>"http://sample/addressBook/person/1"</js>,
- <js>"http://sample/addressBook"</js>, <js>"Aug 12, 1946"</js>);
- Address a = <jk>new</jk> Address();
- a.<jf>uri</jf> = <jk>new</jk>
URI(<js>"http://sample/addressBook/address/1"</js>);
- a.<jf>personUri</jf> = <jk>new</jk>
URI(<js>"http://sample/addressBook/person/1"</js>);
- a.<jf>id</jf> = 1;
- a.<jf>street</jf> = <js>"100 Main Street"</js>;
- a.<jf>city</jf> = <js>"Anywhereville"</js>;
- a.<jf>state</jf> = <js>"NY"</js>;
- a.<jf>zip</jf> = 12345;
- a.<jf>isCurrent</jf> = <jk>true</jk>;
- p.<jf>addresses</jf>.add(a);
-
- <jc>// Get the JSON Schema corresponding to the JSON generated
above.</jc>
- String jsonSchema = s.serialize(p);
+
+ <jc>// Get the JSON Schema for the POJO.</jc>
+ String jsonSchema = s.serialize(<jk>new</jk> Person());
</p>
- <h5 class='figure'>Results</h5>
+ <h5 class='figure'>JSON Schema</h5>
<p class='bcode'>
{
type: <js>'object'</js>,
description: <js>'org.apache.juneau.sample.Person'</js>,
properties: {
- id: {
- type: <js>'number'</js>,
- description: <js>'int'</js>
- },
name: {
type: <js>'string'</js>,
description: <js>'java.lang.String'</js>
},
- uri: {
- type: <js>'any'</js>,
- description: <js>'java.net.URI'</js>
- },
- addressBookUri: {
- type: <js>'any'</js>,
- description: <js>'java.net.URI'</js>
- },
birthDate: {
- type: <js>'any'</js>,
+ type: <js>'string'</js>,
description: <js>'java.util.Calendar'</js>
},
addresses: {
@@ -4385,18 +4228,6 @@
type: <js>'object'</js>,
description:
<js>'org.apache.juneau.sample.Address'</js>,
properties: {
- uri: {
- type: <js>'any'</js>,
- description:
<js>'java.net.URI'</js>
- },
- personUri: {
- type: <js>'any'</js>,
- description:
<js>'java.net.URI'</js>
- },
- id: {
- type:
<js>'number'</js>,
- description:
<js>'int'</js>
- },
street: {
type:
<js>'string'</js>,
description:
<js>'java.lang.String'</js>
@@ -4440,157 +4271,72 @@
XML.
<br>However, several XML annotations are provided for
handling namespaces and fine-tuning the format of the XML produced.
</p>
-
- <p>
- The example shown here is from the Address Book
resource located in the <code>juneau-examples-rest</code>
- microservice project.
- <br>The POJO model consists of a <code>List</code> of
<code>Person</code> beans, with each <code>Person</code>
- containing zero or more <code>Address</code> beans.
- </p>
- <p>
- When you point a browser at
<code>/sample/addressBook</code>, the POJO is rendered as HTML:
- </p>
- <img class='bordered' src="doc-files/Example_HTML.png">
- <p>
- By appending
<code>?Accept=<i>mediaType</i>&plainText=true</code> to the URL, you can
view the data
- in the various supported XML formats:
- </p>
-
- <h5 class='figure'>Normal XML</h5>
- <img class='bordered' src="doc-files/Example_XML.png">
-
- <h5 class='figure'>Simplified XML</h5>
- <img class='bordered' src="doc-files/Example_XMLSimple.png">
-
- <p>
- In addition to serializing POJOs to XML, Juneau
includes support for serializing the POJO metamodel to
- XML Schema, with support for multiple namespaces.
- </p>
-
- <h5 class='figure'>XML Schema</h5>
- <img class='bordered' src="doc-files/Example_XMLSchema.png">
-
- <p>
- {@link org.apache.juneau.xml.XmlSerializer} is the
class used to convert POJOs to XML.
- <br>{@link org.apache.juneau.xml.XmlDocSerializer} is a
subclass that adds an XML declaration element to the output
- before the POJO is serialized.
- </p>
- <p>
- The XML serializer includes many configurable settings.
- <br>Static reusable instances of XML serializers are
provided with commonly-used settings:
- </p>
- <ul class='spaced-list'>
- <li>
- {@link
org.apache.juneau.xml.XmlSerializer#DEFAULT}
- - All default settings.
- <li>
- {@link
org.apache.juneau.xml.XmlSerializer#DEFAULT_SQ}
- - Use single quotes on attributes. Typically
useful for testing since it makes string comparison simpler.
- <li>
- {@link
org.apache.juneau.xml.XmlSerializer#DEFAULT_SQ_READABLE}
- - Use single quotes on attributes and add
whitespace for readability.
- <li>
- {@link
org.apache.juneau.xml.XmlSerializer#DEFAULT_NS}
- - Same as DEFAULT but with namespaces enabled.
- <li>
- {@link
org.apache.juneau.xml.XmlSerializer#DEFAULT_NS_SQ}
- - Same as DEFAULT_SQ but with namespaces
enabled.
- <li>
- {@link
org.apache.juneau.xml.XmlSerializer#DEFAULT_NS_SQ_READABLE}
- - Same as DEFAULT_SQ_READABLE but with
namespaces enabled.
- </ul>
- <p>
- In addition, DTO beans are provided that use the XML
serializer and parser for the following languages:
- </p>
- <ul>
- <li class='jp'><a class='doclink'
href='../dto/atom/package-summary.html#TOC'>org.apache.juneau.dto.atom</a> -
ATOM beans.
- <li class='jp'><a class='doclink'
href='../dto/cognos/package-summary.html#TOC'>org.apache.juneau.dto.cognos</a>
- Cognos beans.
- <li class='jp'><a class='doclink'
href='../dto/html5/package-summary.html#TOC'>org.apache.juneau.dto.html5</a> -
HTML5 beans.
- </ul>
<p>
- Refer to the package-level Javadocs for more
information about those formats.
- </p>
-
- <h5 class='topic'>Notes about examples</h5>
- <p>
- The examples shown in this document will use
single-quote, readable settings.
- <br>For brevity, the examples will use public fields
instead of getters/setters to reduce the size of the examples.
- <br>In the real world, you'll typically want to use
standard bean getters and setters.
- </p>
- <p>
- To start off simple, we'll begin with the following
simplified bean and build upon it.
+ The following example shows XML for a typical bean:
</p>
+ <h5 class='figure'>Sample Beans</h5>
<p class='bcode'>
+ <ja>@Bean</ja>(typeName=<js>"person"</js>)
<jk>public class</jk> Person {
+
<jc>// Bean properties</jc>
- <jk>public int</jk> <jf>id</jf>;
<jk>public</jk> String <jf>name</jf>;
-
- <jc>// Bean constructor (needed by parser)</jc>
- <jk>public</jk> Person() {}
-
- <jc>// Normal constructor</jc>
- <jk>public</jk> Person(<jk>int</jk> id, String name) {
- <jk>this</jk>.<jf>id</jf> = id;
- <jk>this</jk>.<jf>name</jf> = name;
- }
+ <ja>@Swap</ja>(CalendarSwap.ISO8601DTZ.<jk>class</jk>)
<jk>public</jk> Calendar <jf>birthDate</jf>;
+ <jk>public</jk> List<Address> <jf>addresses</jf>;
+
+ <jc>// Getters/setters omitted</jc>
}
- </p>
- <p>
- The following code shows how to convert this to simple
XML (no namespaces):
- </p>
- <p class='bcode'>
- <jc>// Create a new serializer with readable output, no
namespaces yet.</jc>
- XmlSerializer s = XmlSerializer.<jsm>create</jsm>()
- .ws() <jc>// or .useWhitespace(true)</jc>
- .sq() <jc>// or .quoteChar('\'')</jc>
- .ns() <jc>// or .enableNamespaces(false)</jc>
- .build();
+
+ <ja>@Bean</ja>(typeName=<js>"address"</js>)
+ <jk>public class</jk> Address {
- <jc>// Create our bean.</jc>
- Person p = <jk>new</jk> Person(1, <js>"John Smith"</js>);
+ <jc>// Bean properties</jc>
+ <jk>public</jk> String <jf>street</jf>, <jf>city</jf>;
+ <jk>public</jk> StateEnum <jf>state</jf>;
+ <jk>public int</jk> <jf>zip</jf>;
+ <jk>public boolean</jk> <jf>isCurrent</jf>;
- <jc>// Serialize the bean to XML.</jc>
- String xml = s.serialize(p);
- </p>
- <p>
- <i>Side note:</i> Serializers can also be created by
cloning existing serializers:
+ <jc>// Getters/setters omitted</jc>
+ }
</p>
+ <h5 class='figure'>Sample Code</h5>
<p class='bcode'>
- <jc>// Create a new serializer with readable output, no namespaces yet,
but use cloning method.</jc>
- XmlSerializer s = XmlSerializer.<jsf>DEFAULT_SQ_READABLE</jsf>
- .builder()
- .ns()
- .build();
- </p>
- <p>
- The code above produces the following output:
+ Person p = <jk>new</jk> Person()
+ .name(<js>"John Smith"</js>)
+ .birthDate(<js>"1946-08-12T00:00:00Z"</js>)
+ .addresses(
+ <jk>new</jk> Address()
+ .street(<js>"100 Main Street"</js>)
+ .city(<js>"Anywhereville"</js>)
+ .state(<jsf>NY</jsf>)
+ .zip(12345)
+ .isCurrent(<jk>true</jk>);
+ );
</p>
- <p class='bcode'><xt>
- <object>
- <id><xv>1</xv></id>
- <name><xv>John Smith</xv></name>
- </object>
- </xt></p>
- <p>
- The first thing you may notice is how the bean instance
is represented by the element <xt><object></xt>.
- <br>When objects have no name associated with them,
Juneau provides a default generalized name that maps to the
- equivalent JSON data type.
- <br>Some cases when objects do not have names:
+ <h5 class='figure'>Normal XML:</h5>
+ <p class='bcode'>
+ <xt><person></xt>
+ <xt><name></xt>John Smith<xt></name></xt>
+
<xt><birthDate></xt>1946-08-12T04:00:00Z<xt></birthDate></xt>
+ <xt><addresses></xt>
+ <xt><address></xt>
+ <xt><street></xt>100 Main
Street<xt></street></xt>
+
<xt><city></xt>Anywhereville<xt></city></xt>
+ <xt><state></xt>NY<xt></state></xt>
+ <xt><zip></xt>12345<xt></zip></xt>
+
<xt><isCurrent></xt>true<xt></isCurrent></xt>
+ <xt></address></xt>
+ <xt></addresses></xt>
+ <xt></person></xt>
</p>
- <ul>
- <li>Root element
- <li>Object in an array, collection, or map.
- </ul>
<p>
- The generalized name reflects the JSON-equivalent data
type.
<br>Juneau produces JSON-equivalent XML, meaning any
valid JSON document can be losslessly converted into an XML
equivalent.
<br>In fact, all of the Juneau serializers and parsers
are built upon this JSON-equivalence.
</p>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.XmlDetails.Methodology"></a>
+ <a id="juneau-marshall.XmlDetails.XmlMethodology"></a>
<h4 class='topic' onclick='toggle(this)'>2.17.1 - XML
Methodology</h4>
<div class='topic'>
@@ -4998,14 +4744,14 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.XmlDetails.Serializers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.2 -
Serializers</h4>
+ <a id="juneau-marshall.XmlDetails.XmlSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.17.2 - XML
Serializers</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.XmlDetails.Parsers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.3 - Parsers</h4>
+ <a id="juneau-marshall.XmlDetails.XmlParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.17.3 - XML
Parsers</h4>
<div class='topic'>
<p>
The {@link org.apache.juneau.xml.XmlParser}
class is the class used to parse Juneau-generated XML back into
@@ -5106,14 +4852,8 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.XmlDetails.ConfigurableProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.4 - Configurable
Properties</h4>
- <div class='topic'>
- </div>
-
- <!--
=======================================================================================================
-->
<a id="juneau-marshall.XmlDetails.BeanTypeNameAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.5 -
@Bean(typeName) Annotation</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.17.4 -
@Bean(typeName) Annotation</h4>
<div class='topic'>
<p>
The {@link
org.apache.juneau.annotation.Bean#typeName() @Bean.typeName()} annotation can
be used to
@@ -5596,7 +5336,7 @@
<!--
=======================================================================================================
-->
<a id="juneau-marshall.XmlDetails.XmlChildNameAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.6 -
@Xml(childName) Annotation</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.17.5 -
@Xml(childName) Annotation</h4>
<div class='topic'>
<p>
The {@link
org.apache.juneau.xml.annotation.Xml#childName() @Xml.childName()} annotation
can be used to
@@ -5685,7 +5425,7 @@
<!--
=======================================================================================================
-->
<a id="juneau-marshall.XmlDetails.XmlFormatAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.7 - @Xml(format)
Annotation</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.17.6 - @Xml(format)
Annotation</h4>
<div class='topic'>
<p>
The {@link
org.apache.juneau.xml.annotation.Xml#format() @Xml.format()} annotation can be
used to tweak
@@ -6398,7 +6138,7 @@
<!--
=======================================================================================================
-->
<a id="juneau-marshall.XmlDetails.Namespaces"></a>
- <h4 class='topic' onclick='toggle(this)'>2.17.8- Namespaces</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.17.7- Namespaces</h4>
<div class='topic'>
<p>
Let's go back to the example of our original
<code>Person</code> bean class:
@@ -6560,6 +6300,12 @@
</div>
<!--
=======================================================================================================
-->
+ <a id="juneau-marshall.XmlDetails.UriProperties"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.17.8- URI
Properties</h4>
+ <div class='topic'>
+ </div>
+
+ <!--
=======================================================================================================
-->
<a id="juneau-marshall.XmlDetails.XmlSchema"></a>
<h4 class='topic' onclick='toggle(this)'>2.17.9 - XML-Schema
Support</h4>
<div class='topic'>
@@ -6903,7 +6649,7 @@
<div class='topic'>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.HtmlDetails.Methodology"></a>
+ <a id="juneau-marshall.HtmlDetails.HtmlMethodology"></a>
<h4 class='topic' onclick='toggle(this)'>2.18.1 - HTML
Methodology</h4>
<div class='topic'>
@@ -7422,32 +7168,26 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.HtmlDetails.Serializers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.18.2 -
Serializers</h4>
+ <a id="juneau-marshall.HtmlDetails.HtmlSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.18.2 - HTML
Serializers</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.HtmlDetails.Parsers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.18.3 - Parsers</h4>
+ <a id="juneau-marshall.HtmlDetails.HtmlParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.18.3 - HTML
Parsers</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.HtmlDetails.ConfigurableProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>2.18.4 - Configurable
Properties</h4>
- <div class='topic'>
- </div>
-
- <!--
=======================================================================================================
-->
<a id="juneau-marshall.HtmlDetails.HtmlAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.18.5 - @Html
Annotation</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.18.4 - @Html
Annotation</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
<a id="juneau-marshall.HtmlDetails.HtmlSchema"></a>
- <h4 class='topic' onclick='toggle(this)'>2.18.6 - HTML-Schema
Support</h4>
+ <h4 class='topic' onclick='toggle(this)'>2.18.5 - HTML-Schema
Support</h4>
<div class='topic'>
</div>
</div>
@@ -7651,14 +7391,14 @@
</p>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.UonDetails.Methodology"></a>
+ <a id="juneau-marshall.UonDetails.UonMethodology"></a>
<h4 class='topic' onclick='toggle(this)'>2.19.1 - UON
Methodology</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.UonDetails.Serializers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.19.2 -
Serializers</h4>
+ <a id="juneau-marshall.UonDetails.UonSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.19.2 - UON
Serializers</h4>
<div class='topic'>
<p>
{@link
org.apache.juneau.urlencoding.UrlEncodingSerializer} and {@link
org.apache.juneau.uon.UonSerializer}
@@ -7771,8 +7511,8 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.UonDetails.Parsers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.19.3 - Parsers</h4>
+ <a id="juneau-marshall.UonDetails.UonParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.19.3 - UON
Parsers</h4>
<div class='topic'>
<p>
{@link
org.apache.juneau.urlencoding.UrlEncodingParser} and {@link
org.apache.juneau.uon.UonParser} classes are
@@ -7893,12 +7633,6 @@
}
</p>
</div>
-
- <!--
=======================================================================================================
-->
- <a id="juneau-marshall.UonDetails.ConfigurableProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>2.19.4 - Configurable
Properties</h4>
- <div class='topic'>
- </div>
</div>
<!--
=======================================================================================================
-->
@@ -8099,14 +7833,14 @@
</p>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.UrlEncodingDetails.Methodology"></a>
+ <a
id="juneau-marshall.UrlEncodingDetails.UrlEncodingMethodology"></a>
<h4 class='topic' onclick='toggle(this)'>2.20.1 - URL-Encoding
Methodology</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.UrlEncodingDetails.Serializers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.20.2 -
Serializers</h4>
+ <a
id="juneau-marshall.UrlEncodingDetails.UrlEncodingSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.20.2 - URL-Encoding
Serializers</h4>
<div class='topic'>
<p>
{@link
org.apache.juneau.urlencoding.UrlEncodingSerializer} and {@link
org.apache.juneau.uon.UonSerializer}
@@ -8220,8 +7954,8 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall.UrlEncodingDetails.Parsers"></a>
- <h4 class='topic' onclick='toggle(this)'>2.20.3 - Parsers</h4>
+ <a
id="juneau-marshall.UrlEncodingDetails.UrlEncodingParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.20.3 - URL-Encoding
Parsers</h4>
<div class='topic'>
<p>
{@link
org.apache.juneau.urlencoding.UrlEncodingParser} and {@link
org.apache.juneau.uon.UonParser} classes
@@ -8344,17 +8078,55 @@
</div>
<!--
=======================================================================================================
-->
- <a
id="juneau-marshall.UrlEncodingDetails.ConfigurableProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>2.20.4 - Configurable
Properties</h4>
+ <a
id="juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.20.4 - @UrlEncoding
Annotation</h4>
+ <div class='topic'>
+ </div>
+ </div>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.MsgPackDetails"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.21 - MessagePack Details</h3>
+ <div class='topic'>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.MsgPackDetails.MsgPackMethodology"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.21.1 - MessagePack
Methodology</h4>
+ <div class='topic'>
+ </div>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.MsgPackDetails.MsgPackSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.21.2 - MessagePack
Serializers</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a
id="juneau-marshall.UrlEncodingDetails.UrlEncodingAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>2.20.5 - @UrlEncoding
Annotation</h4>
+ <a id="juneau-marshall.MsgPackDetails.MsgPackParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>2.21.3 - MessagePack
Parsers</h4>
<div class='topic'>
</div>
+
</div>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.SoapDetails"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.22 - SOAP Details</h3>
+ <div class='topic'>
+ </div>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.SoapDetails"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.23 - CSV Details</h3>
+ <div class='topic'>
+ </div>
+
+ <!--
=======================================================================================================
-->
+ <a id="juneau-marshall.SoapDetails"></a>
+ <h3 class='topic' onclick='toggle(this)'>2.24 - Java Serialized Object
Details</h3>
+ <div class='topic'>
+ </div>
+
</div>
<!--
===========================================================================================================
-->
@@ -8480,14 +8252,14 @@
<img class='bordered' src="doc-files/Example_N3.png">
<!--
=======================================================================================================
-->
- <a id="juneau-marshall-rdf.RdfDetails.Methodology"></a>
+ <a id="juneau-marshall-rdf.RdfDetails.RdfMethodology"></a>
<h4 class='topic' onclick='toggle(this)'>3.1.1 - RDF
Methodology</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall-rdf.RdfDetails.Serializers"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.2 -
Serializers</h4>
+ <a id="juneau-marshall-rdf.RdfDetails.RdfSerializers"></a>
+ <h4 class='topic' onclick='toggle(this)'>3.1.2 - RDF
Serializers</h4>
<div class='topic'>
<p>
The {@link
org.apache.juneau.jena.RdfSerializer} class is the top-level class for all
Jena-based serializers.
@@ -8581,8 +8353,8 @@
</div>
<!--
=======================================================================================================
-->
- <a id="juneau-marshall-rdf.RdfDetails.Parsers"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.3 - Parsers</h4>
+ <a id="juneau-marshall-rdf.RdfDetails.RdfParsers"></a>
+ <h4 class='topic' onclick='toggle(this)'>3.1.3 - Rdf
Parsers</h4>
<div class='topic'>
<p>
The {@link org.apache.juneau.jena.RdfParser}
class is the top-level class for all Jena-based parsers.
@@ -8669,20 +8441,14 @@
</div>
<!--
=======================================================================================================
-->
- <a
id="juneau-marshall-rdf.RdfDetails.ConfigurableProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.4 - Configurable
Properties</h4>
- <div class='topic'>
- </div>
-
- <!--
=======================================================================================================
-->
<a id="juneau-marshall-rdf.RdfDetails.RdfAnnotation"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.5 - @Rdf
Annotation</h4>
+ <h4 class='topic' onclick='toggle(this)'>3.1.4 - @Rdf
Annotation</h4>
<div class='topic'>
</div>
<!--
=======================================================================================================
-->
<a id="juneau-marshall-rdf.RdfDetails.Namespaces"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.6 - Namespaces</h4>
+ <h4 class='topic' onclick='toggle(this)'>3.1.5 - Namespaces</h4>
<div class='topic'>
<p>
You'll notice in the previous example that
Juneau namespaces are used to represent bean property names.
@@ -8767,7 +8533,7 @@
<!--
=======================================================================================================
-->
<a id="juneau-marshall-rdf.RdfDetails.UriProperties"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.7 - URI
Properties</h4>
+ <h4 class='topic' onclick='toggle(this)'>3.1.6 - URI
Properties</h4>
<div class='topic'>
<p>
Bean properties of type
<code>java.net.URI</code> or <code>java.net.URL</code> have special meaning to
the
@@ -8874,7 +8640,7 @@
<!--
=======================================================================================================
-->
<a id="juneau-marshall-rdf.RdfDetails.RootProperty"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.8 - Root
Property</h4>
+ <h4 class='topic' onclick='toggle(this)'>3.1.7 - Root
Property</h4>
<div class='topic'>
<p>
For all RDF languages, the POJO objects get
broken down into simple triplets.
@@ -8945,7 +8711,7 @@
<!--
=======================================================================================================
-->
<a id="juneau-marshall-rdf.RdfDetails.TypedLiterals"></a>
- <h4 class='topic' onclick='toggle(this)'>3.1.9 - Typed
Literals</h4>
+ <h4 class='topic' onclick='toggle(this)'>3.1.8 - Typed
Literals</h4>
<div class='topic'>
<p>
XML-Schema data-types can be added to
non-<code>String</code> literals through the
--
To stop receiving notification emails like this one, please contact
[email protected].