mirror of
https://github.com/stleary/JSON-java.git
synced 2025-08-03 03:15:32 -04:00
#863 reorder instanceof checks by assumed frequency
This commit is contained in:
parent
e2194bc190
commit
d878c38d40
@ -2706,17 +2706,9 @@ public class JSONObject {
|
|||||||
if (value == null || value.equals(null)) {
|
if (value == null || value.equals(null)) {
|
||||||
writer.write("null");
|
writer.write("null");
|
||||||
} else if (value instanceof String) {
|
} else if (value instanceof String) {
|
||||||
// assuming most values are Strings, so testing it earlier
|
// assuming most values are Strings, so testing it early
|
||||||
quote(value.toString(), writer);
|
quote(value.toString(), writer);
|
||||||
return writer;
|
return writer;
|
||||||
} else if (value instanceof JSONString) {
|
|
||||||
Object o;
|
|
||||||
try {
|
|
||||||
o = ((JSONString) value).toJSONString();
|
|
||||||
} catch (Exception e) {
|
|
||||||
throw new JSONException(e);
|
|
||||||
}
|
|
||||||
writer.write(o != null ? o.toString() : quote(value.toString()));
|
|
||||||
} else if (value instanceof Number) {
|
} else if (value instanceof Number) {
|
||||||
// not all Numbers may match actual JSON Numbers. i.e. fractions or Imaginary
|
// not all Numbers may match actual JSON Numbers. i.e. fractions or Imaginary
|
||||||
final String numberAsString = numberToString((Number) value);
|
final String numberAsString = numberToString((Number) value);
|
||||||
@ -2729,8 +2721,6 @@ public class JSONObject {
|
|||||||
}
|
}
|
||||||
} else if (value instanceof Boolean) {
|
} else if (value instanceof Boolean) {
|
||||||
writer.write(value.toString());
|
writer.write(value.toString());
|
||||||
} else if (value instanceof Enum<?>) {
|
|
||||||
writer.write(quote(((Enum<?>)value).name()));
|
|
||||||
} else if (value instanceof JSONObject) {
|
} else if (value instanceof JSONObject) {
|
||||||
((JSONObject) value).write(writer, indentFactor, indent);
|
((JSONObject) value).write(writer, indentFactor, indent);
|
||||||
} else if (value instanceof JSONArray) {
|
} else if (value instanceof JSONArray) {
|
||||||
@ -2741,6 +2731,16 @@ public class JSONObject {
|
|||||||
} else if (value instanceof Collection) {
|
} else if (value instanceof Collection) {
|
||||||
Collection<?> coll = (Collection<?>) value;
|
Collection<?> coll = (Collection<?>) value;
|
||||||
new JSONArray(coll).write(writer, indentFactor, indent);
|
new JSONArray(coll).write(writer, indentFactor, indent);
|
||||||
|
} else if (value instanceof Enum<?>) {
|
||||||
|
writer.write(quote(((Enum<?>)value).name()));
|
||||||
|
} else if (value instanceof JSONString) {
|
||||||
|
Object o;
|
||||||
|
try {
|
||||||
|
o = ((JSONString) value).toJSONString();
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new JSONException(e);
|
||||||
|
}
|
||||||
|
writer.write(o != null ? o.toString() : quote(value.toString()));
|
||||||
} else if (value.getClass().isArray()) {
|
} else if (value.getClass().isArray()) {
|
||||||
new JSONArray(value).write(writer, indentFactor, indent);
|
new JSONArray(value).write(writer, indentFactor, indent);
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user