The Abdera JSON Writer serializes Atom objects into a JSON format. The output depends largely on what Abdera Model object is being serialized. Null values are omitted from the output.
Example Serialization: http://www.snellspace.com/public/atom2json.txt
See also http://www.ibm.com/developerworks/library/x-atom2json.html
Serializing org.apache.abdera.model.Document
Abdera abdera = new Abdera(); Document doc = ... Writer writer = abdera.getWriterFactory().getWriter("json"); writer.writeTo(doc,System.out);
The fields correspond to the various getters on the Document object and represent information acquired primarily from the HTTP Headers of the source Atom document.
Field |
Description |
---|---|
base |
The Base URI |
charset |
The charset encoding |
contenttype |
The MIME media type of the document |
etag |
The Entity Tag of the document |
lastmodified |
The number of milliseconds since the epoch indicating the value of the Last-Modified header |
language |
The value of the Content-Language header |
slug |
The value of the Slug header |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
root |
json serialization of the root element |
Serializing org.apache.abdera.model.Feed
Abdera abdera = new Abdera(); Document<Feed> doc = ... Feed feed = doc.getRoot(); Writer writer = abdera.getWriterFactory().getWriter("json"); writer.writeTo(feed,System.out);
Produces:
Field |
Description |
---|---|
id |
The atom:id value |
title |
serialization of the atom:title |
subtitle |
serialization of the atom:subtitle |
rights |
serialization of the atom:rights |
updated |
number of milliseconds since the epoch, serialization of the atom:updated |
generator |
serialization of atom:generator |
icon |
absolute URI, serialization of atom:icon |
logo |
absolute URI, serialization of atom:logo |
authors |
array of serialized atom:author objects, see person serialization below |
contributors |
array of serialized atom:contributor objects, see person serialization below |
links |
array of serialized atom:link objects |
categories |
array of serialized atom:category objects |
complete |
true if the feed is marked with fh:complete from RFC 5005 |
archive |
true if the feed is marked with fh:archive from RFC 5005 |
entries |
array of serialized atom:entry objects |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
Serializing org.apache.abdera.model.Entry
Abdera abdera = new Abdera(); Document<Entry> doc = ... Entry entry = doc.getRoot(); Writer writer = abdera.getWriterFactory().getWriter("json"); writer.writeTo(entry,System.out);
Field |
Description |
---|---|
id |
The atom:id value |
title |
serialization of the atom:title |
summary |
serialization of the atom:summary |
rights |
serialization of the atom:rights |
updated |
number of milliseconds since the epoch, serialization of the atom:updated |
published |
number of milliseconds since the epoch, serialization of the atom:published |
edited |
number of milliseconds since the epoch, serialization of the app:edited |
authors |
array of serialized atom:author objects, see person serialization below |
contributors |
array of serialized atom:contributor objects, see person serialization below |
links |
array of serialized atom:link objects |
categories |
array of serialized atom:category objects |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
inreplyto |
array of serialized thr:in-reply-to elements |
replies |
array of serialized "replies" links with comment counts |
licenses |
array of serialized "license" links |
Serializing atom:category
Field |
Description |
---|---|
term |
atom:category/@term |
label |
atom:category/@label |
scheme |
atom:category/@scheme (absolute uri) |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
Serializing atom:generator
Field |
Description |
---|---|
version |
atom:generator/@version |
uri |
atom:generator/@uri |
value |
atom:generator/text() |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
Serializing atom:link
Field |
Description |
---|---|
href |
atom:link/@href |
rel |
atom:link/@rel |
hreflang |
atom:link/@hreflang |
title |
atom:link/@title |
length |
atom:link/@length |
type |
atom:link/@type |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in-scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
Serializing atom:person
Field |
Description |
---|---|
name |
atom:author/@name or atom:contributor/@name |
atom:author/@email or atom:contributor/@email |
|
uri |
atom:author/@uri or atom:contributor/@uri (absolute uri) |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in-scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
Serializing Atom Text constructs (e.g. atom:title, atom:summary, etc)
Field |
Description |
---|---|
type |
"text", "html", or "xhtml" |
value |
string or xhtml hash |
display |
string |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in-scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
base |
in-scope xml:base |
XHTML content is serialized as a structure of hash objects within the value field. For a displayable version, use the display field.
Serializing atom:content
Field |
Description |
---|---|
type |
"text", "html", "xhtml" or MIME media type |
value |
string or xhtml hash |
display |
string (only when type equals text, html or xhtml) |
src |
atom:content/@src |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in-scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
base |
in-scope xml:base |
XHTML content is serialized as a structure of hash objects within the value field. For a displayable version, use the display field.
Serializing app:control
Field |
Description |
---|---|
draft |
true or false, app:control/app:draft |
Serializing app:service
Field |
Description |
---|---|
workspaces |
array of serialized app:workspace objects |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
Serializing app:workspace
Field |
Description |
---|---|
collections |
array of serialized app:collection objects |
title |
app:workspace/atom:title |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
Serializing app:collection
Field |
Description |
---|---|
href |
app:collection/@href |
title |
app:collection/atom:title |
accept |
array of MIME media types |
categories |
array of serialized app:categories objects |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
Serializing app:categories
Field |
Description |
---|---|
fixed |
true or false, app:categories/@fixed |
scheme |
app:categories/@scheme |
categories |
array of serialized atom:category objects |
extensions |
array of serialized extension objects (any element not in the Atom namespace) |
attributes |
array of serialized extension attributes ( any attribute not in the Atom namespace ) |
Serializing thr:in-reply-to
Field |
Description |
---|---|
ref |
thr:in-reply-to/@ref |
href |
thr:in-reply-to/@href |
type |
thr:in-reply-to/@type |
source |
thr:in-reply-to/@source |
Serializing extension elements
Field |
Description |
---|---|
qname |
serialized QName object |
dir |
rtl or ltr if Atom Bidi Attribute extension is used |
language |
in-scope xml:lang |
whitespace |
false if insignificant whitespace should be ignored. equivalent to xml:space |
base |
in-scope xml:base |
attributes |
array of serialized attributes |
children |
array of serialized children |
Serializing attributes
Field |
Description |
---|---|
qname |
serialized QName object |
value |
string value |
Serializing QName
Field |
Description |
---|---|
name |
QName localpart |
ns |
QName namespace URI |
prefix |
QName prefix |
Accessing the serialized data
var feed = { json serialized feed } document.write( feed.id ); document.write( new Date(feed.updated) ); document.write( feed.title.display ); document.write( feed.title.type ); document.write( feed.entries.length ); for (n = 0; n < feed.entries.length; n++) { entry = feed.entries[n]; document.write( entry.id ); document.write( entry.title.display ); document.write( entry.title.type ); document.write( entry.content.display ); document.write( entry.content.type ); for (i = 0; i < entry.links.length; i++) { link = entry.links[i]; document.write( link.rel ); document.write( link.href ); document.write( link.title ); } }