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