Commit Graph

618 Commits

Author SHA1 Message Date
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
d8095c72fd minor improvements to the test 2009-07-14 01:08:04 +00:00
Inderjeet Singh
eac1beacc9 Added performance tests for byte array serialization and deserialization. 2009-07-13 22:27:55 +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
Joel Leitch
c8cb35e025 Adding copyright statement to JsonParserTest. 2009-04-01 16:56:40 +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
8965d31ce9 made DEBUG final per the naming conventions. 2009-03-30 19:55:05 +00:00
Inderjeet Singh
e340801d25 Moved enum-related tests under EnumTest class. 2009-03-30 18:36:55 +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
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
1c5785be57 Tests to reproduce issue 95. The tests currently pass so the bug will be marked as invalid. 2009-03-12 20:54:00 +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
3d1f7251c1 Added tests to reproduce issue 103. The tests pass at the moment, so we need more information in the bugreport. 2009-03-12 01:04:30 +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
18005bbae1 using consistent method name prefixes. 2009-03-03 22:37:26 +00:00
Inderjeet Singh
2c25fdd850 Added a test to measure performance of Gson on large collections. Gson's parser handled a collection of 1.4 million objects for serialization. For deserialization, the numbers were lower and Gson parser gave a stack overflow beyond a collection of 87,000 objects. 2009-03-03 22:20:59 +00:00
Inderjeet Singh
da8a1feee8 Added tests for the bugreport http://code.google.com/p/google-gson/issues/detail?id=99 2009-03-03 21:09:07 +00:00
Inderjeet Singh
d4a53ee2fc Added tests to verify JsonParser and related methods in Gson. 2009-02-07 00:20:30 +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
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
d34fb916cb Added tests for enum serialization and derserialization. 2009-01-20 00:52:54 +00:00
Joel Leitch
47b67390fa Set the DEBUG bit back to false. 2009-01-17 22:34:57 +00:00
Joel Leitch
f4f92a699d Added test for pretty printing of Maps. 2009-01-17 22:32:59 +00:00
Joel Leitch
6620786642 Added Copyright statement. 2009-01-11 06:18:08 +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
970446e997 replaced system.out.println with a real assertion in the test. 2008-12-31 01:15:15 +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
6fe2fdf7a0 test to reproduce issue 87 2008-12-31 00:43:40 +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
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
Joel Leitch
458f2baa2f Added special serialization of "Long". Now the client has the ability to output a long field as a JSON "String". This is useful for JavaScript clients that need to handle long values.
As well, this change does a major clean up of the custom type adapter handling and ParameterizedTypeMap creation.
2008-12-28 03:23:36 +00:00
Joel Leitch
54a480774d Add the ability to configure Gson to exclude serializing and deserializing of all "Inner Classes". 2008-12-28 02:00:31 +00:00
Inderjeet Singh
bc6ec50db9 incorporated fixes from code review of r341 2008-12-23 18:24:13 +00:00
Inderjeet Singh
e0195fcc54 code review changes from r342
Enabled escaping of /
2008-12-23 18:18:14 +00:00
Inderjeet Singh
51881c7f4a Added a GsonBuilder setting to enable serialization of special double types, NaN, Infinity, and -Infinity. 2008-12-20 01:26:14 +00:00
Inderjeet Singh
362a94ec74 Added deserialization support for Double NaN, Infinity, and -Infinity 2008-12-19 22:21:35 +00:00
Inderjeet Singh
f33a84c223 Added tests for ensuring that control characters are escaped by Gson. 2008-12-19 20:58:58 +00:00
Inderjeet Singh
e4fdea0fc1 Updated Gson escaper to not escape unicode characters. This is in response to Issue 80. 2008-12-19 20:41:53 +00:00
Inderjeet Singh
53f7d26b6d removed tests for serialization of BigDecimal NaN, positive and negative infinity since BigDecimal can not be created with these values. 2008-12-19 17:46:24 +00:00
Inderjeet Singh
f7e4d5e4bb Added checks to ensure that we do not serialize NaN or postiive or negative infinity for BigDecimal. 2008-12-18 23:56:38 +00:00
Inderjeet Singh
6dbdb272c0 Added checks to ensure that we do not serialize NaN or postiive or negative infinity for floats. 2008-12-18 23:41:44 +00:00
Joel Leitch
17256b8ce5 Added tests for JsonPrimitive object creation with a char type.
Suggestion from r321 code review.
2008-12-18 20:06:20 +00:00
Inderjeet Singh
cbc6b4d939 Added checks to ensure that we do not serialize NaN or postiive or negative infinity for doubles. 2008-12-18 20:00:27 +00:00
Inderjeet Singh
de713614af incorporated feedback from code review of r295 2008-12-18 18:59:30 +00:00
Joel Leitch
fc65667d2f Add support for wildcard type on Maps, Collections and other parameterized types. 2008-12-14 07:12:04 +00:00
Joel Leitch
8e1c6a2b37 Ensure that BigDecimals fields are properly converted into its string representation. 2008-12-14 05:56:41 +00:00
Joel Leitch
ea79cd6812 Allow booleans and number to be deserialized into a "String" field/object. 2008-12-14 04:42:16 +00:00
Joel Leitch
0b5f3dc825 Added UUID as a default type supported by Gson. 2008-12-13 20:42:31 +00:00
Joel Leitch
11a29b63b0 Implemented suggested changes from r324 code review. 2008-12-02 23:41:04 +00:00
Joel Leitch
b9e81f93c1 Fixed warnings and updated some JavaDoc. 2008-12-01 01:40:11 +00:00
Joel Leitch
50dd475eb8 Added more tests involving Since and Until versioning. 2008-12-01 00:23:35 +00:00
Joel Leitch
6f59bc3bfe Added "Until" type version. This new annotation allows you to remove members from the JSON output beginning at a certain version number.
This new annotation work in conjunction with the "@Since" annotation.
2008-12-01 00:10:04 +00:00
Joel Leitch
5ae7e1f803 Adding new convenience method to JsonObject for adding Booleans and Characters. 2008-11-30 23:36:29 +00:00
Joel Leitch
b90228dcc0 Enable serialization of nulls within Maps. 2008-11-30 23:01:14 +00:00
Joel Leitch
a82c400dc8 Fix warnings. 2008-11-30 00:47:07 +00:00
Joel Leitch
c9e48097ec Do not overwrite a duplicate field value during seriailzation if one those fields is null. 2008-11-27 00:50:50 +00:00
Joel Leitch
d6d1daeedd Submitting @Expose tests with interfaces. 2008-11-26 21:46:55 +00:00
Inderjeet Singh
59be02d4de Added support for accepting Object field names without quotes. Issue 41. 2008-11-26 17:52:46 +00:00
Inderjeet Singh
7334a33d14 Test to verify support for object member names without quotes (see Issue 41). 2008-11-26 17:49:35 +00:00
Joel Leitch
2effd57976 Deserialization will no longer call the default constructor or InstanceCreator if the object being deserialized has a custom deserializer. 2008-11-25 18:42:47 +00:00
Inderjeet Singh
1e7f3ebe7a tests to verify correct serialization and deserialization of = char. 2008-11-25 17:53:12 +00:00
Joel Leitch
0c98c2f8d1 More lenient parsing of Numbers and Booleans. Basically, can deserialize properly formatted stringr representations of numbers and booleans. 2008-11-20 19:40:12 +00:00
Joel Leitch
2250afe825 Allow serialization of Object in collections. This used to be supported before restructuring the Collection type handling. 2008-11-20 01:06:21 +00:00
Joel Leitch
3df2d44e40 Adding a "remove" method to the JsonObject class. Created a unit test to ensure it is functioning properly. 2008-11-19 01:22:21 +00:00
Joel Leitch
d5319d9e84 Parse all JSON numbers as either BigDecimal or BigInteger. From there we can properly convert into the proper primitive type if need be. This reduces the chance of losing precision with floating point numbers. 2008-11-18 20:26:15 +00:00
Joel Leitch
628a2c5b86 Added default serializer/deserializer for "Number" 2008-11-18 20:05:02 +00:00
Joel Leitch
788d2bfbbb Fix parsing of double and big decimals that have an exponent but no fraction part. 2008-11-18 19:55:14 +00:00
Joel Leitch
e101ed1623 Adding the JavaDoc for Google Gson version 1.2.3 2008-11-15 17:38:06 +00:00
Joel Leitch
b6f767bf05 Fix warning in code 2008-11-15 05:13:05 +00:00
Joel Leitch
cf2a457af7 Removed the TypeAdapter object from GSON now that the primitive objects and fields are created by a custom Type Adapter. 2008-11-15 05:11:28 +00:00
Joel Leitch
0d8150fe52 Major restructuring of Primitve type serialization and deserializtion. From the end-user's point of view there should be no difference other than the user can now override the default serialization/deserialization their own custom type adapter (not sure if there is a real use-case out there for this).
This restructuring greatly cleans up the code and reduces some complexity; however, there is more that can be done to clean this up (i.e. get rid of "InstanceCreators" for primitive Type Adapters).
2008-11-15 02:26:57 +00:00
Inderjeet Singh
7e360b95e7 Added tests to verify that custom serializer and deserializers for byte[] types works. 2008-11-14 23:55:57 +00:00
Inderjeet Singh
ad1c1a731d Added more tests in response to Issue 70. 2008-11-14 22:11:12 +00:00
Inderjeet Singh
dfad0a3612 Added tests in response to Issue 70. 2008-11-14 21:59:59 +00:00
Inderjeet Singh
9a69560d9f During serialization, we now dont call custom serializers the field is null.
During deserialization, we do not call custom deserializer if the field is to be set to null. Moreover, changed the logic to set fields to null only if explicitly indicated in the incoming Json. This is different from past behavior where all fields not mentioned in incoming Json were set to null. Now they are set to whatever the default constructor will do.
2008-11-14 20:52:57 +00:00
Inderjeet Singh
bc2c25f235 Removed ExceptionWrapper from serializers.
This is done since it is improper to throw a parse exception from serializers. Moreover, the serializers dont deal with external input, they deal with classes, so they need not guard against spurious input.
2008-11-14 02:17:19 +00:00
Inderjeet Singh
9245bebdba For the Collection and Map types, using ObjectConstructor to create instance instead of hard-coding a specific type.
This helps is handling cases where the user is using their own subclass of Collection or Map.

Updated ParameterizedTypeHandlerMap to return the handler corresponding to Map and Collection for subclasses if user has not specified a specific handler.

Fixed the logic in JsonTreeNavigator to not output a comma if the first field of an object was null.
2008-11-14 02:11:46 +00:00
Inderjeet Singh
eaa43b76e4 Added a custom type adapter for Collection class. We will migrate the code to use it instead of special cases for collections all over. This type adapter is called at a few places already.
Also added tests for verifying that Gson can handle serialization and deserialization of sub types of Maps. The deserialization test fails currently.
2008-11-13 23:40:10 +00:00
Inderjeet Singh
cc90a68241 Fixed issue 68 by providing support to override default type adapters for
primitive types. Added a visitFieldUsingCustomHandler method to handle this in
the visitors.
2008-10-31 00:19:58 +00:00
Inderjeet Singh
70c7728218 Wrote a test that invokes a custom deserializer for a wrapper primitive type. 2008-10-30 18:26:16 +00:00
Inderjeet Singh
3f53e8b223 Added tests for Issue 68 2008-10-30 01:45:44 +00:00
Inderjeet Singh
c98d7bc340 Fixed issue 66 to allow escaped slash ( \/) as a valid Json escaped character.
Changed Gson version to 1.2.3.
2008-10-29 23:31:13 +00:00
Inderjeet Singh
3cd665b199 Added support for serialization of raw maps.
Also, refactored tests for maps in MapTest class.
2008-10-21 22:37:41 +00:00
Inderjeet Singh
9dfa454f6d Fixed issue 63 where Gson could not operate in a thread-safe manner. Resolved the issue by recreating ObjectNavigatorFactory for each call instead of reusing the same object everywhere. This is needed since ObjectNavigatorFactory had MemoryRefStack that was incorrectly being shared across calls. 2008-10-20 20:09:42 +00:00
Inderjeet Singh
95861175a8 deleted unused variable. 2008-10-20 19:51:38 +00:00
Inderjeet Singh
0acb151941 A test to reproduce Gson concurrency bug. See issue 63. 2008-10-20 19:48:38 +00:00
Inderjeet Singh
9f5a2086de updated Gson version to 1.2.2
Added a test to ensure that CustomTypeAdapters are not applied automatically
for SubClasses.
2008-10-14 19:37:33 +00:00
Inderjeet Singh
745c8e2a83 Fixed issue 58 by disabling the use of field value actual type for all cases
except when it is marked as Object.
2008-10-14 18:55:59 +00:00
Inderjeet Singh
646d94d420 test for issue 58 2008-10-14 18:54:34 +00:00
Inderjeet Singh
5631132892 Fixed Issue 54 to enable serialization of fields that are declared of type
Object.
2008-10-13 21:12:41 +00:00
Inderjeet Singh
f6a278018e test for Issue 51 for inner classes serialization and deserialization. 2008-10-13 19:49:05 +00:00
Inderjeet Singh
add960644a disabled tests for issue 43 and 44 since those are deferred for a subsequent release. 2008-10-13 19:14:57 +00:00
Inderjeet Singh
2b9fd47b72 Fixed issue 53 where default date instances were not getting
serialized/deserialized properly. Added support for time style as well by using he default formatter that uses time style.
2008-10-13 18:40:20 +00:00
Inderjeet Singh
4d73459b7e moved performance tests under the metrics package and replaced the invalid JSON
string with \n with a valid one.
2008-10-10 23:22:27 +00:00
Inderjeet Singh
d61e754fb6 Added tests for explicit serialization of null array, collection and string
fields with serializeNulls set to true.
2008-10-10 22:31:19 +00:00
Inderjeet Singh
d74ecbfe82 Updated JsonParser to use Token to match strings instead of productions. This
enables Gson to handle much larger strings (~10s of MB) than previously
possible (<100kb). This also reduces memory and stack requirements, and
increases Gson performance as well.
2008-10-10 21:52:02 +00:00
Inderjeet Singh
1abf693b70 Fix for Issue 55 where GSON was unable to deserialize JSON with single quotes
(') used for field name/values. Gson now supports different fields with-in the
JSON to use either single quote or double quote. However, a single field name
or value must use ' or "" to delimit itself.
2008-10-10 02:53:54 +00:00
Inderjeet Singh
427c17a732 added a test for checking if GSON can parse JSON that uses single quotes
instead of double quotes for various field values.
2008-10-10 02:32:50 +00:00
Inderjeet Singh
3b8404dac5 refactored String related functional tests out in a separate test class. 2008-10-10 02:29:06 +00:00
Inderjeet Singh
0b9c739a7b added additional tests for the default deserialization of dates. 2008-10-06 22:00:04 +00:00
Joel Leitch
973696cbf5 Tests exposing bug 43 and 44. 2008-09-16 17:53:43 +00:00
Inderjeet Singh
57d1f32de5 moved gson as a project under trunk 2008-09-01 03:13:32 +00:00