diff options
Diffstat (limited to 'gson/docs/javadocs/com/google/gson/JsonSerializer.html')
-rw-r--r-- | gson/docs/javadocs/com/google/gson/JsonSerializer.html | 275 |
1 files changed, 275 insertions, 0 deletions
diff --git a/gson/docs/javadocs/com/google/gson/JsonSerializer.html b/gson/docs/javadocs/com/google/gson/JsonSerializer.html new file mode 100644 index 00000000..db6f39ef --- /dev/null +++ b/gson/docs/javadocs/com/google/gson/JsonSerializer.html @@ -0,0 +1,275 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> +<!--NewPage--> +<HTML> +<HEAD> +<!-- Generated by javadoc (build 1.6.0_65) on Thu Nov 20 01:11:55 PST 2014 --> +<META http-equiv="Content-Type" content="text/html; charset=UTF-8"> +<TITLE> +JsonSerializer (Gson 2.3.1 API) +</TITLE> + +<META NAME="date" CONTENT="2014-11-20"> + +<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style"> + +<SCRIPT type="text/javascript"> +function windowTitle() +{ + if (location.href.indexOf('is-external=true') == -1) { + parent.document.title="JsonSerializer (Gson 2.3.1 API)"; + } +} +</SCRIPT> +<NOSCRIPT> +</NOSCRIPT> + +</HEAD> + +<BODY BGCOLOR="white" onload="windowTitle();"> +<HR> + + +<!-- ========= START OF TOP NAVBAR ======= --> +<A NAME="navbar_top"><!-- --></A> +<A HREF="#skip-navbar_top" title="Skip navigation links"></A> +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> +<TR> +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> +<A NAME="navbar_top_firstrow"><!-- --></A> +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> + <TR ALIGN="center" VALIGN="top"> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> + <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/JsonSerializer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> + </TR> +</TABLE> +</TD> +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> +</EM> +</TD> +</TR> + +<TR> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../com/google/gson/JsonSerializationContext.html" title="interface in com.google.gson"><B>PREV CLASS</B></A> + <A HREF="../../../com/google/gson/JsonStreamParser.html" title="class in com.google.gson"><B>NEXT CLASS</B></A></FONT></TD> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../index.html?com/google/gson/JsonSerializer.html" target="_top"><B>FRAMES</B></A> + <A HREF="JsonSerializer.html" target="_top"><B>NO FRAMES</B></A> + <SCRIPT type="text/javascript"> + <!-- + if(window==top) { + document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); + } + //--> +</SCRIPT> +<NOSCRIPT> + <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> +</NOSCRIPT> + + +</FONT></TD> +</TR> +<TR> +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> + SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> +DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> +</TR> +</TABLE> +<A NAME="skip-navbar_top"></A> +<!-- ========= END OF TOP NAVBAR ========= --> + +<HR> +<!-- ======== START OF CLASS DATA ======== --> +<H2> +<FONT SIZE="-1"> +com.google.gson</FONT> +<BR> +Interface JsonSerializer<T></H2> +<DL> +<DT><DT><B>Type Parameters:</B><DD><CODE>T</CODE> - type for which the serializer is being registered. It is possible that a serializer + may be asked to serialize a specific generic type of the T.</DL> +<HR> +<DL> +<DT><PRE>public interface <B>JsonSerializer<T></B></DL> +</PRE> + +<P> +Interface representing a custom serializer for Json. You should write a custom serializer, if + you are not happy with the default serialization done by Gson. You will also need to register + this serializer through <A HREF="../../../com/google/gson/GsonBuilder.html#registerTypeAdapter(java.lang.reflect.Type, java.lang.Object)"><CODE>GsonBuilder.registerTypeAdapter(Type, Object)</CODE></A>. + + <p>Let us look at example where defining a serializer will be useful. The <code>Id</code> class + defined below has two fields: <code>clazz</code> and <code>value</code>.</p> + + <p><pre> + public class Id<T> { + private final Class<T> clazz; + private final long value; + + public Id(Class<T> clazz, long value) { + this.clazz = clazz; + this.value = value; + } + + public long getValue() { + return value; + } + } + </pre></p> + + <p>The default serialization of <code>Id(com.foo.MyObject.class, 20L)</code> will be + <code>{"clazz":com.foo.MyObject,"value":20}</code>. Suppose, you just want the output to be + the value instead, which is <code>20</code> in this case. You can achieve that by writing a custom + serializer:</p> + + <p><pre> + class IdSerializer implements JsonSerializer<Id>() { + public JsonElement serialize(Id id, Type typeOfId, JsonSerializationContext context) { + return new JsonPrimitive(id.getValue()); + } + } + </pre></p> + + <p>You will also need to register <code>IdSerializer</code> with Gson as follows:</p> + <pre> + Gson gson = new GsonBuilder().registerTypeAdapter(Id.class, new IdSerializer()).create(); + </pre> + + <p>New applications should prefer <A HREF="../../../com/google/gson/TypeAdapter.html" title="class in com.google.gson"><CODE>TypeAdapter</CODE></A>, whose streaming API + is more efficient than this interface's tree API. +<P> + +<P> +<DL> +<DT><B>Author:</B></DT> + <DD>Inderjeet Singh, Joel Leitch</DD> +</DL> +<HR> + +<P> + +<!-- ========== METHOD SUMMARY =========== --> + +<A NAME="method_summary"><!-- --></A> +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> +<TH ALIGN="left" COLSPAN="2"><FONT SIZE="+2"> +<B>Method Summary</B></FONT></TH> +</TR> +<TR BGCOLOR="white" CLASS="TableRowColor"> +<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"> +<CODE> <A HREF="../../../com/google/gson/JsonElement.html" title="class in com.google.gson">JsonElement</A></CODE></FONT></TD> +<TD><CODE><B><A HREF="../../../com/google/gson/JsonSerializer.html#serialize(T, java.lang.reflect.Type, com.google.gson.JsonSerializationContext)">serialize</A></B>(<A HREF="../../../com/google/gson/JsonSerializer.html" title="type parameter in JsonSerializer">T</A> src, + <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</A> typeOfSrc, + <A HREF="../../../com/google/gson/JsonSerializationContext.html" title="interface in com.google.gson">JsonSerializationContext</A> context)</CODE> + +<BR> + Gson invokes this call-back method during serialization when it encounters a field of the + specified type.</TD> +</TR> +</TABLE> + +<P> + +<!-- ============ METHOD DETAIL ========== --> + +<A NAME="method_detail"><!-- --></A> +<TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""> +<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"> +<TH ALIGN="left" COLSPAN="1"><FONT SIZE="+2"> +<B>Method Detail</B></FONT></TH> +</TR> +</TABLE> + +<A NAME="serialize(java.lang.Object,java.lang.reflect.Type,com.google.gson.JsonSerializationContext)"><!-- --></A><A NAME="serialize(T, java.lang.reflect.Type, com.google.gson.JsonSerializationContext)"><!-- --></A><H3> +serialize</H3> +<PRE> +<A HREF="../../../com/google/gson/JsonElement.html" title="class in com.google.gson">JsonElement</A> <B>serialize</B>(<A HREF="../../../com/google/gson/JsonSerializer.html" title="type parameter in JsonSerializer">T</A> src, + <A HREF="http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/reflect/Type.html?is-external=true" title="class or interface in java.lang.reflect">Type</A> typeOfSrc, + <A HREF="../../../com/google/gson/JsonSerializationContext.html" title="interface in com.google.gson">JsonSerializationContext</A> context)</PRE> +<DL> +<DD>Gson invokes this call-back method during serialization when it encounters a field of the + specified type. + + <p>In the implementation of this call-back method, you should consider invoking + <A HREF="../../../com/google/gson/JsonSerializationContext.html#serialize(java.lang.Object, java.lang.reflect.Type)"><CODE>JsonSerializationContext.serialize(Object, Type)</CODE></A> method to create JsonElements for any + non-trivial field of the <code>src</code> object. However, you should never invoke it on the + <code>src</code> object itself since that will cause an infinite loop (Gson will call your + call-back method again).</p> +<P> +<DD><DL> +<DT><B>Parameters:</B><DD><CODE>src</CODE> - the object that needs to be converted to Json.<DD><CODE>typeOfSrc</CODE> - the actual type (fully genericized version) of the source object. +<DT><B>Returns:</B><DD>a JsonElement corresponding to the specified object.</DL> +</DD> +</DL> +<!-- ========= END OF CLASS DATA ========= --> +<HR> + + +<!-- ======= START OF BOTTOM NAVBAR ====== --> +<A NAME="navbar_bottom"><!-- --></A> +<A HREF="#skip-navbar_bottom" title="Skip navigation links"></A> +<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""> +<TR> +<TD COLSPAN=2 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> +<A NAME="navbar_bottom_firstrow"><!-- --></A> +<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> + <TR ALIGN="center" VALIGN="top"> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> + <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/JsonSerializer.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> + <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> + </TR> +</TABLE> +</TD> +<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM> +</EM> +</TD> +</TR> + +<TR> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../com/google/gson/JsonSerializationContext.html" title="interface in com.google.gson"><B>PREV CLASS</B></A> + <A HREF="../../../com/google/gson/JsonStreamParser.html" title="class in com.google.gson"><B>NEXT CLASS</B></A></FONT></TD> +<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> + <A HREF="../../../index.html?com/google/gson/JsonSerializer.html" target="_top"><B>FRAMES</B></A> + <A HREF="JsonSerializer.html" target="_top"><B>NO FRAMES</B></A> + <SCRIPT type="text/javascript"> + <!-- + if(window==top) { + document.writeln('<A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A>'); + } + //--> +</SCRIPT> +<NOSCRIPT> + <A HREF="../../../allclasses-noframe.html"><B>All Classes</B></A> +</NOSCRIPT> + + +</FONT></TD> +</TR> +<TR> +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> + SUMMARY: NESTED | FIELD | CONSTR | <A HREF="#method_summary">METHOD</A></FONT></TD> +<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> +DETAIL: FIELD | CONSTR | <A HREF="#method_detail">METHOD</A></FONT></TD> +</TR> +</TABLE> +<A NAME="skip-navbar_bottom"></A> +<!-- ======== END OF BOTTOM NAVBAR ======= --> + +<HR> +Copyright © 2008–2014 <a href="http://www.google.com">Google, Inc.</a>. All rights reserved. +</BODY> +</HTML> |