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
|
@Override
|
||||||
public String getAsString() {
|
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);
|
assertTrue(bag.booleanValue);
|
||||||
assertEquals("bar", bag.stringValue);
|
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