JArray is internally represented as a mutable Array, to improve sequential performance
Implements named extractors so we can avoid boxing
JNumber is internally represented as a string, to improve performance
JObject is internally represented as a mutable Array, to improve sequential performance