Represents a JSON Array value
Represents a JSON Boolean value, which can either be a JTrue or a JFalse
Represents a JSON number value.
Represents a JSON Object value.
Represents a JSON Object value. Duplicate keys are allowed and ordering is respected
Represents a JSON string value
Represents a JSON Value which may be invalid.
Represents a JSON Value which may be invalid. Internally uses mutable collections when its desirable to do so, for performance and other reasons (such as ordering and duplicate keys)
https://www.ietf.org/rfc/rfc4627.txt
Represents a JSON Boolean false value
Represents a JSON null value
Represents a JSON Boolean true value
Represents a JSON number value.
If you are passing in a NaN or Infinity as a Double, unsafe.JNumber will contain "NaN" or "Infinity" as a String which means it will cause issues for users when they use the value at runtime. It may be preferable to check values yourself when constructing unsafe.JValue to prevent this. This isn't checked by default for performance reasons.