public abstract class JsonElement extends Object
A class representing an element of Json. It could either be a JsonObject, a JsonArray, a JsonPrimitive or a JsonNull.
public final class JsonObject extends JsonElement
A class representing an object type in Json. An object consists of name-value pairs where names are strings, and values are any other type of JsonElement. This allows for a creating a tree of JsonElements. The member elements of this object are maintained in order they were added.
Nevermind that question.
JsonElement contains common code for all the valid types in JSON:
- JsonPrimitive (string, number, boolean)
This allows you a write a method that takes a
JsonElement that works with any of the above types.
JsonElement is the base type for all of the different specific types – it’s a base class with common things that all nodes should implement. Logically, this makes a lot of sense.
The thing that all specific types inherits from
JsonElement is a good thing for you, too. It allows you to test if an object is a Json node representation, simply by checking if it inherits from
JsonElement class is available to you as a public class probably not because you’d want to subclass it, but because you’d want to test for its subclasses.