Allow booleans and number to be deserialized into a "String" field/object.
This commit is contained in:
parent
0b5f3dc825
commit
ea79cd6812
|
@ -166,7 +166,13 @@ public final class JsonPrimitive extends JsonElement {
|
|||
*/
|
||||
@Override
|
||||
public String getAsString() {
|
||||
return (String) value;
|
||||
if (isNumber()) {
|
||||
return getAsNumber().toString();
|
||||
} else if (isBoolean()) {
|
||||
return getAsBooleanWrapper().toString();
|
||||
} else {
|
||||
return (String) value;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -542,4 +542,14 @@ public class ObjectTest extends TestCase {
|
|||
assertTrue(bag.booleanValue);
|
||||
assertEquals("bar", bag.stringValue);
|
||||
}
|
||||
|
||||
public void testStringFieldWithNumberValueDeserialization() {
|
||||
String json = "{\"stringValue\":1}";
|
||||
BagOfPrimitives bag = gson.fromJson(json, BagOfPrimitives.class);
|
||||
assertEquals("1", bag.stringValue);
|
||||
|
||||
json = "{\"stringValue\":true}";
|
||||
bag = gson.fromJson(json, BagOfPrimitives.class);
|
||||
assertEquals("true", bag.stringValue);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue
Block a user