Commit Graph

214 Commits

Author SHA1 Message Date
Joel Leitch
e6496fddd6 Update JavaDoc to link to the correct interface (FieldNamingStrategy2). 2010-01-09 22:48:53 +00:00
Joel Leitch
e3af076ff2 Deprecate the FieldNamingStrategy interface and replace it with FieldNamingStrategy2. This is the first step to help make it easy to cache field annotations across all instances of a class, etc. 2010-01-09 22:43:27 +00:00
Inderjeet Singh
7079799890 Fixed issue 167 by adding support for TreeSet deserialization. Added tests for serialization/deserialization of treesets. 2010-01-08 19:14:42 +00:00
Inderjeet Singh
15fa10943c Fixed serializers and deserializers for java.sql Date and Time to ensure that Date does't serialize time, and time does't serialize the date portion. 2009-12-04 18:15:00 +00:00
Inderjeet Singh
ebf24fbda5 Fixed issue 134 by adding support for java.sql Date and Timestamp classses. 2009-12-04 01:21:13 +00:00
Joel Leitch
c329d020b9 Make some fields final and initialize immediately. 2009-12-03 23:13:39 +00:00
Joel Leitch
33e816dcf0 More lazy initialization done for FieldAttributes. 2009-12-03 22:28:58 +00:00
Joel Leitch
641390b1a1 Lazily initialize fields in FieldAttributes to prevent multiple Java reflection invocations. 2009-12-03 22:17:39 +00:00
Inderjeet Singh
610580b8d9 exposed final fields of Pair for fast access. Pair is used quite a bit during serialization because of its use in ref stack. 2009-12-03 20:58:22 +00:00
Inderjeet Singh
bc1e5c5c99 Ensured that custom deserializer is invoked with actual type returned for field values.
Fixed a bug where a top-level object was constructed with default values even when the custom deserializer tried to set it to null.
2009-10-09 19:41:33 +00:00
Inderjeet Singh
338758a0d3 implemented support for deserialization to deserialize to more specific type if an instance creator returns a sub-class. 2009-10-09 18:16:16 +00:00
Joel Leitch
fffb204cee Removed import for java.util.Map.Entry. 2009-10-09 18:10:43 +00:00
Joel Leitch
de6af4411b Minor fixes. 2009-10-09 15:43:50 +00:00
Inderjeet Singh
60ef777efc Fixed custom serilization invocation to correctly handle nulls returned by custom serializer. 2009-10-09 15:28:05 +00:00
Joel Leitch
6387c9028e Updated JavaDoc formatting 2009-10-09 15:26:34 +00:00
Joel Leitch
81e6ae25f1 Make FieldAttributes public so it can be used by public clients. 2009-10-09 03:11:16 +00:00
Joel Leitch
282ef30280 Updating JavaDoc tag to @code instead of @link. 2009-10-09 03:03:04 +00:00
Inderjeet Singh
e37add7836 Implemented some code review comments from r482 2009-10-09 01:35:45 +00:00
Joel Leitch
6d60a7db1d Fixed comments from r486. 2009-10-09 00:36:22 +00:00
Inderjeet Singh
2bddd575b3 Code review changes from r476 2009-10-08 23:23:52 +00:00
Joel Leitch
93b0008486 Adding restrictions on the JsonElements to disallow Java "null"s. 2009-10-08 22:03:08 +00:00
Joel Leitch
10c39317a1 Makes ExclusionStrategy public. 2009-10-08 21:52:56 +00:00
Joel Leitch
dc5922e703 Addresses comments in r481 (except for the interface change....leaving FieldAttributes as a class).
Change the exclusion order in ObjectNavigator to exclude a top-level class (if exclusion strategy suggests class should be skipped) even if it is marked with a custom (de)serializer.
2009-10-08 20:51:40 +00:00
Inderjeet Singh
b634804533 Ensured that a base class custom serializer is run when the type is specified explicitly during serialization. For all other situations, ensured that the actual type of the object is taken into consideration while serializing. First a custom handler corresponding to the actual type is looked up, then a custom handler for the specified type.
Created some serialization specific tests regarding custom serializers. Revised some tests to use toJsonTree for better asserts instead of string matching.
2009-10-08 19:28:53 +00:00
Joel Leitch
839b0c2f94 Refactored exclusion strategies so that they can easily be exposed as part of the public API. 2009-10-07 09:23:14 +00:00
Joel Leitch
c892738fbb Re-enabling the ' (apostrophe) escaping with valid JSON escaping. 2009-10-07 03:48:29 +00:00
Inderjeet Singh
536a968b32 Disabled escaping of single quote since it is valid for JSON (though invalid for JavaScript).
Added null checks in contexts since the custom type adapter can pass nulls.
2009-10-06 17:10:52 +00:00
Inderjeet Singh
1da3ef9891 Ensured that a custom handler is not visited during deserialization.
Ensured that JsonTreeNavigator can handle null values as children of JsonObject. This is now possible since Gson exposes toJson(JsonElement) method to which the user can pass a JsonElement with null values.
2009-10-06 01:15:28 +00:00
Inderjeet Singh
ff74224815 Revised equals and hashcode of ObjectTypePair to ensure reference equality of object instead of value equality. Improved JavaDocs for various 1.4 API methods. 2009-10-05 18:17:52 +00:00
Inderjeet Singh
2716d96516 Revised ancestor stack to use both object and type 2009-10-03 04:45:12 +00:00
Joel Leitch
25ea878f66 Add some synchronization to the JsonStreamParser to ensure that the "next" method behaves according to the API. 2009-10-02 20:21:19 +00:00
Inderjeet Singh
1dcdd3fb3f Implemented suggestions from code review r432 by adding a JsonNull for primitives if the value is null. 2009-10-01 22:15:53 +00:00
Inderjeet Singh
c64b79c0f9 Implemented suggestions from the code review of r436: throwing NoSuchElementException in case the stream hits EOF. 2009-10-01 18:34:11 +00:00
Inderjeet Singh
3b1056c097 Renamed JsonParserAsync to JsonStreamParser as that is a more appropriate name.
Added a TODO in JsonSerializationVisitor per code review of r453.
2009-10-01 17:46:28 +00:00
Inderjeet Singh
8567fe6c10 Implementing code review comment from r428: Using Polymorphism for exclusion strategies for expose annotations. 2009-10-01 01:37:57 +00:00
Inderjeet Singh
77c2c29316 Implementing code review feedback from r454: using isFirst instead of the Stack to keep track of whether to add commas or not. 2009-10-01 00:57:55 +00:00
Inderjeet Singh
fbefa59b66 changed synchronization on Date type adapter to be for the format object per code review comments on r452 2009-09-30 23:11:30 +00:00
Inderjeet Singh
907082102d Added code to ensure that circular reference situations with custom handlers are detected.
Split CircularReferenceTest out of ObjectTest.
2009-09-29 20:43:31 +00:00
Joel Leitch
933a3e5150 Allow serialization of nulls in a "List<Object>" type. 2009-09-29 20:34:35 +00:00
Joel Leitch
563cd1e8e3 Adding the "since" tag. 2009-09-29 18:52:32 +00:00
Joel Leitch
ad4ff6996b Adding new default field naming policy 2009-09-29 18:44:56 +00:00
Joel Leitch
553a619ebd Allow dashes as part of the field name. 2009-09-29 18:40:08 +00:00
Inderjeet Singh
e9a2a1d0f7 Fixed Issue 153 by using a stack to keep track of first elements at any level. 2009-09-29 17:52:49 +00:00
Inderjeet Singh
3e7ebf8556 Fixed issue 156.
Added support for serializing an object field (or array elements) as per its actual type.
Refactored inheritance related tests into its own test class. Added regression tests for issue 156.
2009-09-25 19:54:25 +00:00
Inderjeet Singh
19ae6c0763 Fixed issue 162 by making default date adapter thread-safe by synchronizing serialize() and deserialize() methods. 2009-09-25 17:14:48 +00:00
Joel Leitch
b0f50bb4be Return a "JsonNull" object for empty whitespace input into the JsonParser. 2009-09-23 19:00:05 +00:00
Inderjeet Singh
fdcd3945c5 Fixed issue 147.
Integral values (byte, short, integer, long, BigInteger) are now comparable to each other.
Floating point values (float, double, BigDecimal) are now comparable to each other.
2009-09-23 18:54:01 +00:00
Joel Leitch
50eb582657 Ensure that the JsonElement.toString() will always generate valid JSON (even when control characters/whitespace characters are used). 2009-09-23 18:28:03 +00:00
Inderjeet Singh
3b0f8f4340 Removed all the JDK warnings about unused fields in test classes or unused constructors for use by Gson or instanceof calls on parameterized types. 2009-09-23 17:45:16 +00:00
Inderjeet Singh
29ab864b2f Fixed bug 158 2009-09-23 17:17:03 +00:00
Joel Leitch
c5812bb485 Fixed Incorrect JavaDoc 2009-09-22 19:10:53 +00:00
Joel Leitch
18b301dfeb - Serializing of Object arrays.
- Fixed incorrect warning
2009-09-22 19:04:27 +00:00
Inderjeet Singh
82771f006c removed Java 1.5 warnings 2009-08-31 17:51:47 +00:00
Inderjeet Singh
66649a1a62 Moved ancestor tracking into the serialization visitor. Deserialization process doesn't need ancestor tracking since JSON does not allow self-referential structures. 2009-08-31 16:38:50 +00:00
Inderjeet Singh
cbcf7defa3 Updated Grammar for matching JsonArray to be left-associative rather than right-associative. Gson can now parse arrays of size over 11MB instead of 80KB which was the prior limit. Thanks for the tip, kenotron. 2009-08-22 01:03:27 +00:00
Inderjeet Singh
c13fc568c7 Fixed indentation and simplified equals method as per code review comments on r419 2009-08-18 18:07:25 +00:00
Inderjeet Singh
f4f596ec3d Made JsonParser implement Iterator 2009-08-12 21:01:42 +00:00
Inderjeet Singh
b7cbfc5c34 Fixed Issue 141 by adding new APIs for writing out JSON string representation for JsonElements. 2009-08-07 20:58:41 +00:00
Inderjeet Singh
64172d1dac Added support to serialize and deserialize array of java.lang.Object when the content is a primitive type. 2009-07-27 23:24:23 +00:00
Inderjeet Singh
4f0728f6a0 Fixed issue 126 by ensuring that parameterized type deduction is not done for transient fields. 2009-06-02 18:02:15 +00:00
Inderjeet Singh
6d50bcea87 Added serialize and deserialize parameters to the Expose annotation that control whether a field gets exposed during serialization or deserialization. 2009-05-19 23:47:53 +00:00
Joel Leitch
376385ac0e Add a single quote to the HTML set of characters that should be escaped. 2009-05-19 19:49:25 +00:00
Joel Leitch
cd9bd71092 Allow JS Keywords as field name. These names are quoted anyways (and are valid according to the JSON spec) so it should not cause any issues. 2009-05-19 17:59:32 +00:00
Joel Leitch
abf4ab2d78 Fix project so it still compiles with JDK 1.5. 2009-05-19 17:51:02 +00:00
Inderjeet Singh
6e59e502c2 Refactored the Async parser interface out of JsonParser into a new class JsonParserAsync. Updated the JsonParser to detect Eof and return a null instead of throwing a ParseException. 2009-05-14 20:18:45 +00:00
Inderjeet Singh
0127891081 Added a new API method in JsonParser to allow reading of multiple JSON objects on a stream asynchronously. 2009-05-08 22:22:34 +00:00
Inderjeet Singh
b44bbbf5e7 Added an API method to create a tree of JsonElement from an object. 2009-04-03 21:33:01 +00:00
Inderjeet Singh
f418ab69a2 Implementing hashcode and equals for JsonPrimitives as value type equality. 2009-04-03 21:24:38 +00:00
Inderjeet Singh
84f0ddd6bb Throwing a helpful error in cases where the user forgot to use the TypeToken idiom. 2009-04-01 22:24:10 +00:00
Joel Leitch
5c6d5a0d11 Remove unneeded exception handling in Gson class. 2009-04-01 19:26:10 +00:00
Inderjeet Singh
cee6c74960 incorporated code review comments from r379 by removing the catching of OutOfMemoryError and StackOverflowError in Gson.fromJson. This is obviated since JsonParser.parse catches these errors, and that was the primary source of these problems. 2009-04-01 17:15:01 +00:00
Joel Leitch
e9600e10cb Made GregorianCalendarTypeAdapter consistent with the other default type adapters. 2009-04-01 17:07:23 +00:00
Inderjeet Singh
149604f0be Made author tags consistent across the public api. 2009-04-01 17:03:31 +00:00
Inderjeet Singh
85f7c939f6 Renamed JsonParserImpl to JsonParserJavacc for clarity. 2009-03-31 17:58:35 +00:00
Inderjeet Singh
2034090b15 Changed version to 1.3
Made JsonParser.parse a non-static method.
2009-03-31 17:53:23 +00:00
Inderjeet Singh
4f727df749 Throwing JsonParseException when the user expected class doesn't match the JSON input during deserialization. 2009-03-27 23:17:46 +00:00
Joel Leitch
c9cb05fc72 Do not leak out a ClassCastException to our clients. 2009-03-27 19:43:33 +00:00
Inderjeet Singh
727dbcdd88 Fixed javadoc for toString() since we do not output valid Json for strings at the moment. 2009-03-20 18:06:52 +00:00
Inderjeet Singh
68f3899c1a Updated the security token to make generated Json non-executable. Removed the unneeded <data> element at the end. 2009-03-20 18:02:35 +00:00
Inderjeet Singh
b2b2e5dc0a Implemented enhancement request from issue 42 by supporting a new GsonBuilder setting generateNonExecutableJson() that prefixes the generated JSON with some special text that makes the output non-executable javascript. Gson now recognizes this special text in the input while parsing the JSON in fromJson and filters it out, if present. 2009-03-17 21:15:10 +00:00
Inderjeet Singh
4fc6400f5c Fixed the test that broke while fixing issue 100 in r394 by using a TreeSet for SortedSets and HashSet for other kind of sets. 2009-03-12 18:17:14 +00:00
Inderjeet Singh
a595032a90 Fixed issue 100 by adding support for deserialization of collections of elements that do not implement Comparable. 2009-03-12 01:59:48 +00:00
Inderjeet Singh
8f456831d4 Fixed Issue 104 by making FieldNamingStrategy to be public and allowing FieldNamingStrategy to be set in GsonBuilder 2009-03-11 21:53:02 +00:00
Inderjeet Singh
809e3b5e21 Fixed bug 106 by adding custom serialization support for Gregorian Calendar. 2009-03-11 21:46:58 +00:00
Inderjeet Singh
16be7167ec Updated Gson grammar to support floating point numbers without a +/- after the E. So, 1.234567899E8 is now accepted by Gson as a valid floating point number. This fixed the bug http://code.google.com/p/google-gson/issues/detail?id=94
Also, updated Gson to use Javacc 4.2.
2009-03-05 23:05:29 +00:00
Inderjeet Singh
2c7cc620d4 Exposed API for JsonParser and added methods to Gson to deserialize from a parse tree. 2009-02-04 01:56:28 +00:00
Inderjeet Singh
f4c21abda6 updated javadoc in response to issue 97 2009-01-29 02:43:36 +00:00
Joel Leitch
764e4d9aca Performance fixes after doing some profiling. 2009-01-20 08:38:21 +00:00
Joel Leitch
6a80791f13 Code cleanup and some minor performance fixes. 2009-01-20 01:36:54 +00:00
Joel Leitch
2cec661ff0 Removing some unnecessary code. 2009-01-20 01:00:59 +00:00
Joel Leitch
0b1ee35784 Code review suggestions for r361 2009-01-12 17:10:50 +00:00
Joel Leitch
e2cfc0cc19 Update GsonBuilder API to accept an enum for the serialize Long as string. This will be useful if/when we implement support to serialize a long type as an array of integers. 2009-01-11 06:11:29 +00:00
Joel Leitch
90a4619034 Minor fixes for pretty printing. 2009-01-11 05:01:23 +00:00
Joel Leitch
02decace26 Added the ability to deserialize a Map "key" object from a String into a complex Java type. 2009-01-06 07:09:19 +00:00
Inderjeet Singh
cc334475b0 Fixed issue 87 by adding support for deserialization of java.util.Properties 2008-12-31 01:01:57 +00:00
Inderjeet Singh
3690d362b9 incorporated feedback from r358 2008-12-30 22:42:36 +00:00
Inderjeet Singh
e839336eea Incorporated comments from the code review r355 2008-12-30 19:03:43 +00:00
Inderjeet Singh
05f54f3552 Incorporated code review comments from r350 2008-12-30 18:54:33 +00:00
Joel Leitch
9612bb3601 Removing test file that I didn't mean to add in r355. 2008-12-28 23:14:44 +00:00
Joel Leitch
73d93e3322 Provide a setting to allow a client to skip the escaping of special HTML characters.
As well, remove the "/" from the list of special HTML characters since it is causing some incompatibilities.
2008-12-28 23:05:22 +00:00