Inderjeet Singh
47a36fd095
Fixed Eclipse warnings
2011-09-30 17:08:35 +00:00
Jesse Wilson
bb7f0b6bb0
Adopt JsonElementWriter in GSON.
...
Add setSerializeNulls() to JsonWriter, so nulls can be skipped from serialization. This does not yet impact JsonElementWriter.
One change in behavior: if the only value is skipped, we now emit "null" rather than "".
2011-09-30 07:08:44 +00:00
Jesse Wilson
364de80611
Stream to a DOM
2011-09-30 06:32:33 +00:00
Jesse Wilson
d26c818918
New streaming writer writes to DOMs
2011-09-30 06:26:46 +00:00
Jesse Wilson
6c0566bd22
Start using JsonElementReader in TypeAdapter.
...
Also fix strict handling of NaN and Infinity
2011-09-30 03:47:30 +00:00
Jesse Wilson
1bb01055f0
Tests for JsonElementReader.close
2011-09-30 03:31:44 +00:00
Jesse Wilson
9ce9c62b44
Tests for JsonElementReader
2011-09-30 03:25:41 +00:00
Jesse Wilson
bd2a0ac466
Support JsonReader API on DOM objects.
...
This still needs test coverage & documentation but it appears to work!
2011-09-30 00:44:37 +00:00
Inderjeet Singh
423d18feb5
Revised test to take into account known problems with JsonElement that holds BigInteger values.
2011-09-29 22:18:16 +00:00
Inderjeet Singh
2541e658f7
Fixed com.google.gson.functional.VersioningTest.testIgnoreLaterVersionClassDeserialization by changing Gson behavior incompatibly (but more consistent).
...
GSON 1.x applies different rules for versioning for classes vs fields. So, if you deserialize a
JSON into a field that is supposed to be skipped, the field is set to null (or default value).
However, if you deserialize it to a top-level class, a default instance is returned.
GSON 2.x returns null for the top-level class.
2011-09-29 22:15:37 +00:00
Jesse Wilson
8b21c7770b
Use the same behavior in all situations when an InstanceCreator returns a subclass.
...
Previously we would set the field if the created instance is being assigned to a field of another object. We wouldn't set it when the created instance is a collection element or the top-level object.
2011-09-29 16:38:24 +00:00
Jesse Wilson
4d0775ce8e
Let the runtime throw on circular references
2011-09-28 19:38:43 +00:00
Jesse Wilson
46e65a77c5
Convert RuntimeTypeAdapter to a TypeAdapterFactory; this avoids the need for serializeDefault()
2011-09-28 19:14:46 +00:00
Jesse Wilson
2236c95c37
Death to serializeDefault and deserializeDefault
2011-09-28 18:00:34 +00:00
Inderjeet Singh
cebda2b119
Fixed MapTest.testInterfaceTypeMapWithSerializer. This test for relying on JsonElement.toString() to have same behavior as gson.toJson(JsonElement). However, gson.toJson() skips nulls by default whereas JsonElement.toString() does not.
2011-09-27 15:38:02 +00:00
Inderjeet Singh
2780a2a9bf
Fixed eclipse warnings.
2011-09-16 06:03:16 +00:00
Inderjeet Singh
882c14a367
Added support in Gson for serializing/deserializing from primitive char.
...
Created a new class for character/char tests, PrimitiveCharacterTest. This is the start of breaking down PrimitiveTest into smaller chunks.
When MiniGson can not find a type adapter for a type, revised the message to say can't handle instead of can't serialize.
2011-09-16 05:52:32 +00:00
Inderjeet Singh
fd502f4e79
removed unused method.
2011-09-16 05:41:04 +00:00
Inderjeet Singh
c71e61cf48
Converted EnumTypeAdapter to new style.
...
Got rid of default Hierarchy Serializer/Deserializers from DefaultTypeAdapters.
Got rid of methods for gettting default serializers/deserializers/instance creators. Instead we reuse the static final instances.
Fixed warnings in TypeAdapters where a parameterized type T was hiding the parameterized T in methods.
Removed support to unwrap single element array of enums into enum values. Also removed the test that verifies this behavior.
2011-09-16 05:40:05 +00:00
Joel Leitch
b90b43ea47
A few minor fixes and one incompatible Java 1.6 API call.
2011-09-16 04:55:52 +00:00
Inderjeet Singh
6b2c275b5c
Deleted Long, Float and Double serializers from legacy DefaultTypeAdapters. This stuff is not invoked anymore as the MiniGson takes care of it.
2011-09-16 04:06:33 +00:00
Jesse Wilson
51a9596d06
Make Dates test slightly more robust to time of day issues. The test still fails outside of PST when run as a part of a larger suite because GSON captures a static snapshot of the system time zone at GSON-creation time.
2011-09-12 06:02:48 +00:00
Jesse Wilson
a98d6eae47
Fix the map type adapter to support array serialization natively.
2011-09-12 05:51:17 +00:00
Jesse Wilson
25c6ae177b
Down to 22 failing tests.
...
Consolidated all of the different code paths that we use to construct instances. We now have an ObjectConstructor class that knows what type it constructs; this means that we don't need to ever do reflection to lookup a constructor at construction time.
Cleaned up some buggy type adapters, particularly around handling of null.
Removed dead code for object graph navigation.
Moved some classes into 'internal' so they are visible to the 'bind' subpackage.
Turned some TypeAdapterFactory/TypeAdapter pairs inside out so that the TypeAdapter is now the inner class. This is necessary so that the factories can take parameters.
Added an API to request the 'next' type adapter for a type. This allows type adapters to compose other type adapters. We're using this in two places:
- where the user has excluded a type from serialization but not deserialization, we need to use the "default" deserialization but interpose null on serialization. We create a type adapter that delegates for one and returns null for the other.
- similarly when a DOM type serializer is registered but no deserializer, or vice versa.
This is the biggest change to the MiniGson core.
For backwards compatibility, return null for the empty string.
Simplify JsonSerializationContext/JsonDeserializationContext to simply call through to GSON. SerializeDefault is currently unsupported.
More useful error messages when calling getAsBoolean on a JsonNull.
Remove currently unused MemoryRefStack. We might need this back again, though wiring it back in will be much more difficult because we don't interject ourselves between the users' various type adapters.
2011-09-11 07:04:56 +00:00
Jesse Wilson
cdd5d80b85
Support writing maps with non-string keys
2011-09-09 08:17:20 +00:00
Jesse Wilson
2ee89879e1
New failing test to show that JsonPrimitive.equals() is broken for values that are out of 'long' range
2011-09-09 07:58:52 +00:00
Jesse Wilson
e756608568
Forbid custom serializers for primitive types (so we can avoid boxing in the reflective and array adapters)
2011-09-09 06:26:21 +00:00
Inderjeet Singh
fede584b98
Gson 2.0 converts JSON with type Object.class into something meaningful such as a Collection of primitives or Maps. Updated tests for the new behavior.
...
Changed $Gson$Types.getCollectionElementType to handle wild-card sub-classes of collections and raw collections.
2011-09-09 06:23:17 +00:00
Jesse Wilson
9424949245
Don't unwrap single-element String arrays
2011-09-09 05:41:35 +00:00
Jesse Wilson
da67003eef
GSON 1.x uses arbitrary precision for primitive type conversion (so -122.08e-2132 != 0)
...
GSON 2.x uses double precision (so -122.08e-2132 == 0)
2011-09-09 05:23:01 +00:00
Jesse Wilson
a7e9ac3612
Don't support oversized values like 30-character integers
2011-09-09 05:11:59 +00:00
Jesse Wilson
e19672d0a3
Throw the right exceptions when primitives fail to parse.
2011-09-09 05:04:24 +00:00
Jesse Wilson
9db0c53217
Adapt bytes
2011-09-09 04:39:29 +00:00
Jesse Wilson
f67940cb63
Retire two old bad features
...
- overriding primitive type adapters
- auto unwrapping of single element arrays
2011-09-09 04:20:25 +00:00
Jesse Wilson
3aeb70e030
Adapter for Object.class
2011-09-09 03:31:16 +00:00
Inderjeet Singh
9b6954decd
Additional tests to verify handling of bytes.
2011-08-26 01:11:50 +00:00
Inderjeet Singh
64dc53ffc4
Added support for runtime type determination while serializing collections and its subclasses.
...
This currently doesn't work since Gson register a hierarchy type adapter for Collections that takes precedence over this.
2011-08-04 23:55:52 +00:00
Jesse Wilson
aa067056c3
Restore support for long serialization policy.
2011-08-04 22:57:36 +00:00
Inderjeet Singh
5c620c7e0a
Changed Gson behavior to reject duplicate fields in a class.
2011-08-03 03:05:12 +00:00
Inderjeet Singh
d70fb90ef7
Added methods to convert to JsonElement in TypeAdapter.
...
Using lenient mode while working with Gson.
Handling nulls while invoking legacy Gson type adapters.
2011-08-03 02:40:18 +00:00
Jesse Wilson
60e6ed912d
Promote MiniGson to gson.internal.bind
2011-08-03 00:25:10 +00:00
Jesse Wilson
befcfd908b
Skip a byte order mark (BOM) if it exists.
...
http://code.google.com/p/android/issues/detail?id=18508
2011-07-20 18:57:30 +00:00
Jesse Wilson
415437810a
Include line and column position in error messages.
2011-07-18 19:26:02 +00:00
Jesse Wilson
9cf579ef01
Use Streams instead of Escaper.
...
Fixes issue 345.
2011-07-12 23:50:00 +00:00
Jesse Wilson
d3a4b48ad9
Unconditionally escape unicode newline characters.
...
Fixes issue 341.
2011-07-12 16:05:22 +00:00
Joel Leitch
7dca724292
Fixing import order.
2011-07-12 04:15:46 +00:00
Jesse Wilson
807aa97ee7
Don't use ambiguous timezone names.
...
Fixes bug 331.
2011-07-01 22:00:45 +00:00
Jesse Wilson
937019651a
Trailing comma tests
2011-07-01 21:36:05 +00:00
Inderjeet Singh
62675b7f46
Added serializeDefault and deserializeDefault methods in contexts that only invoke system type adapters on the top-level object.
...
With this, the RuntimeTypeAdapterTest passes.
2011-07-01 21:29:20 +00:00
Inderjeet Singh
5f4e88f62a
More tests to ensure that serialization works for parameterized types like A<B<C<D>>> without the need to specify type in toJson()
2011-06-25 20:14:09 +00:00
Inderjeet Singh
d347128e6f
Implemented support for serializing objects of type Bar<Foo> without the need to specify their type explicitly in toJson method.
2011-06-25 20:04:14 +00:00
Inderjeet Singh
ef2f73180b
added tests to illustrate and validate that Gson can serialize parameterized types without the need of explicit type token.
2011-06-25 19:43:05 +00:00
Inderjeet Singh
9196b23251
Refactoring: Separated type handler maps into two types: one for system-specified handlers and one for user-specified. system-specified handlers are the ones that Gson comes with (DefaultTypeAdapters).
2011-06-24 21:52:59 +00:00
Jesse Wilson
f74dffc6fd
Add deepCopy to JsonArray and JsonObject.
...
Resolves issue 301.
2011-06-17 21:46:28 +00:00
Joel Leitch
c9ee7adcc5
Start using JsonNull.INSTANCE everywhere and remove creation method.
2011-06-03 19:02:28 +00:00
Inderjeet Singh
60e7c481fd
Added complex map serialization tests in case the Map is defined with TypeVariables.
2011-05-30 09:38:38 +00:00
Inderjeet Singh
f2eb76eac9
removed deprecation warnings by using JsonNull.INSTANCE
2011-05-25 16:48:39 +00:00
Inderjeet Singh
b85daafb08
suppressed unchecked warning
2011-05-11 21:43:47 +00:00
Inderjeet Singh
0bcd1b341f
Revised Gson to refuse to deserialize floating point numbers into integer types.
...
This is probably a break from the past: previous versions of Gson allowed truncating a floating point into a long or int. However, it wasn't consistent in this behavior. It disallowed converting a BigDecimal value into BigInteger, int or long. Refusing to deserialize such values is aligned with fail-fast approach of uncovering bugs.
2011-05-04 23:26:22 +00:00
Inderjeet Singh
824635158c
Parsing numbers lazily as a performance enhancement.
...
This avoids needing to parse number if the equivalent object field doesn't exist.
It also avoids the performance penalty of trying to parse it eagerly as a big decimal, float etc.
2011-04-28 21:57:29 +00:00
Joel Leitch
4efeef1893
Make test a little more complex to show it actually fixed the bug.
2011-04-20 22:32:13 +00:00
Joel Leitch
f291c4d33e
Fix a bunch of preserve-type issues:
...
- Issue 205
- Issue 294
- Issue 318
2011-04-20 22:27:51 +00:00
Joel Leitch
cf3615e38c
Adding tests to verify 294.
2011-04-19 22:18:25 +00:00
Inderjeet Singh
e60274ed35
Added tests to ensure that subclass objects that are of a parameterized type are serialized per their declared type in lists or maps.
2011-04-19 20:49:48 +00:00
Inderjeet Singh
40045dc2e4
Added tests to ensure that subclass objects are serialized per their real type in lists or maps.
...
Currently, this doesnt happen for List and hence the test is marked as disabled.
2011-04-19 20:26:16 +00:00
Joel Leitch
d2cf574e86
Adding unit-tests to verify bugs.
2011-04-15 06:33:09 +00:00
Joel Leitch
c894fb6c23
Default support for BitSet. As well, provide more flexibility on getAsBoolean for a JsonPrimitive.
2011-04-14 02:42:47 +00:00
Joel Leitch
97d00f4930
Add test to verify issue 309.
2011-04-13 16:14:54 +00:00
Joel Leitch
4917fc7f76
Lift restriction on naming when using the "@SerializedNamed" annotation.
...
Fix for Issue 290.
2011-04-12 17:29:19 +00:00
Joel Leitch
49e7ee05fc
Fix method name by making it singular.
2011-04-11 18:44:19 +00:00
Inderjeet Singh
4bd261ae06
Made FieldNamingStrategy2 and its corresponding builder method package-private.
2011-04-07 17:41:35 +00:00
Inderjeet Singh
05ae10a144
removed the constructor in FieldAttributes that was only used in tests.
2011-04-06 00:51:01 +00:00
Joel Leitch
ddb0c8c825
Minor formatting fixes.
2011-04-06 00:43:57 +00:00
Inderjeet Singh
c8bd121db2
Renamed $Preconditions to $Gson$Preconditions and $Types to $Gson$Types.
...
Marked the two private classes in $Types as final.
2011-04-06 00:26:57 +00:00
Joel Leitch
b4eb810347
Comments for r766.
2011-04-06 00:02:40 +00:00
Joel Leitch
f36c1bc222
Very minor cleanup.
2011-04-04 23:17:43 +00:00
Joel Leitch
2fb8c92812
Use more specific type for map serialization if possible.
2011-04-04 23:13:31 +00:00
Inderjeet Singh
542a17c3bc
Incorporated comments from r710
2011-04-04 22:48:34 +00:00
Inderjeet Singh
56b7ab1b71
Incorporated feedback from r718
2011-04-04 22:23:51 +00:00
Inderjeet Singh
feb9617bf0
Incorporated comments from r726
2011-04-04 22:09:51 +00:00
Inderjeet Singh
a147164852
incorporated feedback on r721
2011-04-04 21:43:24 +00:00
Inderjeet Singh
1a9a54dcc2
incorporated review comments from r768
2011-04-04 21:27:37 +00:00
Joel Leitch
21ddfc9b12
Show default serialization and deserialization works with subclasses of an enum type.
2011-04-04 19:19:46 +00:00
Joel Leitch
5af0b16641
Updating Map tests.
2011-04-04 19:07:20 +00:00
Inderjeet Singh
9c894c7485
switched from accessing field to an accessor method for access in tests.
...
Strangely, this fixes the broken tests in the continuous build.
2011-03-31 18:57:55 +00:00
Inderjeet Singh
5bc80cd693
Moved Cache, LruCache, Pair, Primitives and UnsafeAllocator to com.google.gson and made them package private.
2011-03-30 13:59:06 +00:00
Jesse Wilson
46a8e9b411
Test to demonstrate that we've fixed issue 302.
...
http://code.google.com/p/google-gson/issues/detail?id=302
2011-03-29 21:48:03 +00:00
Jesse Wilson
f718784f33
Use the date format for java.sql.Date and java.sql.Timestamp.
...
Fixes issue 230.
2011-03-29 21:36:19 +00:00
Jesse Wilson
4efb133b4a
bling bling
...
Prefix internal classes with $ to prevent them from interfering with IDE's auto import functionality.
2011-03-29 21:24:26 +00:00
Joel Leitch
454f58a7b1
Adding in instance creator to instantiate the concrete Collection or Map class if known, otherwise fallback to a default instance.
...
Also, added some caching as part of the default constructor lookups.
2011-03-29 16:57:28 +00:00
Inderjeet Singh
337d89cf3f
Removed ObjectNavigatorFactory
2011-03-24 20:19:41 +00:00
Inderjeet Singh
13dc7b6f02
Made ObjectNavigator a reusable object. We now use just one instance of ObjectNavigator instead of creating one for each field/object.
2011-03-24 18:41:45 +00:00
Inderjeet Singh
005c93e383
removed unused no-args constructors
2011-03-23 18:48:03 +00:00
Joel Leitch
861e047a62
Create an "internals" package for classes that we do not want to share, but is needed across multiple pacakges.
...
As well, move non-Gson specific classes, such as Preconditions, to this new "internals" package.
2011-03-21 22:30:35 +00:00
Jesse Wilson
657688ca79
Test that the date format is honored, even in a collection.
...
http://code.google.com/p/google-gson/issues/detail?id=230
2011-03-21 22:10:33 +00:00
Jesse Wilson
e96b241556
Test that we can serialize classes whose fields are concrete collections.
2011-03-21 21:49:38 +00:00
Joel Leitch
279c0e87ed
Update Precondition checks and have it throw a NPE instead.
2011-03-16 07:23:44 +00:00
Joel Leitch
a9507250f9
Add test for multiple calls to register complex map key serialization.
2011-03-15 15:41:19 +00:00
Joel Leitch
ba0cd254a9
Clean up warnings.
2011-03-15 15:38:17 +00:00
Joel Leitch
e57ef0908b
Add method to GsonBuilder to enable complex key serialization of maps.
2011-03-15 15:37:41 +00:00