diff --git a/gson/src/main/java/com/google/gson/JsonObject.java b/gson/src/main/java/com/google/gson/JsonObject.java index 62101918..415de6ad 100644 --- a/gson/src/main/java/com/google/gson/JsonObject.java +++ b/gson/src/main/java/com/google/gson/JsonObject.java @@ -132,6 +132,15 @@ public final class JsonObject extends JsonElement { return members.entrySet(); } + /** + * Returns a set of members key values. + * + * @return a set of member keys as Strings + */ + public Set keySet() { + return members.keySet(); + } + /** * Returns the number of key/value pairs in the object. * diff --git a/gson/src/test/java/com/google/gson/JsonObjectTest.java b/gson/src/test/java/com/google/gson/JsonObjectTest.java index 32d9d360..d071c3ba 100644 --- a/gson/src/test/java/com/google/gson/JsonObjectTest.java +++ b/gson/src/test/java/com/google/gson/JsonObjectTest.java @@ -183,4 +183,19 @@ public class JsonObjectTest extends TestCase { assertEquals(1, original.get("key").getAsJsonArray().size()); assertEquals(0, copy.get("key").getAsJsonArray().size()); } + + /** + * From issue 941 + */ + public void testKeySet() { + JsonObject a = new JsonObject(); + + a.add("foo", new JsonArray()); + a.add("bar", new JsonObject()); + + assertEquals(2, a.size()); + assertEquals(2, a.keySet().size()); + assertTrue(a.keySet().contains("foo")); + assertTrue(a.keySet().contains("bar")); + } }