/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param string 字符串
* @return 适合在JSON中显示的字符串
public static String quote(String string) {
return quote(string, true);
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param string 字符串
* @return 适合在JSON中显示的字符串
public static String quote(String string) {
return quote(string, true);
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param str 字符串
* @param writer Writer
* @return Writer
* @throws IOException IO异常
public static Writer quote(String str, Writer writer) throws IOException {
return quote(str, writer, true);
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param str 字符串
* @param writer Writer
* @return Writer
* @throws IOException IO异常
public static Writer quote(String str, Writer writer) throws IOException {
return quote(str, writer, true);
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param string 字符串
* @param isWrap 是否使用双引号包装字符串
* @return 适合在JSON中显示的字符串
* @since 3.3.1
public static String quote(String string, boolean isWrap) {
StringWriter sw = new StringWriter();
try {
return quote(string, sw, isWrap).toString();
} catch (IOException ignored) {
// will never happen - we are writing to a string writer
return StrUtil.EMPTY;
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param string 字符串
* @param isWrap 是否使用双引号包装字符串
* @return 适合在JSON中显示的字符串
* @since 3.3.1
public static String quote(String string,
boolean isWrap) {
StringWriter sw = new StringWriter();
try {
return quote(string, sw, isWrap).toString();
} catch (IOException ignored) {
// will never happen - we are writing to a string writer
return StrUtil.EMPTY;
writer.write(JSONUtil.quote(entry.getKey().toString()));
writer.write(CharUtil.COLON);
if (indentFactor > 0) {
writer.write(JSONUtil.quote(entry.getKey().toString()));
writer.write(CharUtil.COLON);
if (indentFactor > 0) {
return new JSONArray(value).toString();
} else {
return JSONUtil.quote(value.toString());
return new JSONArray(value).toString();
} else {
return JSONUtil.quote(value.toString());
/**
* 对值加一,如果值不存在,赋值1,如果为数字类型,做加一操作
* @param key A key string.
* @return this.
* @throws JSONException 如果存在值非Integer, Long, Double, 或 Float.
public JSONObject increment(String key) throws JSONException {
Object value = this.getObj(key);
if (value == null) {
this.put(key, 1);
} else if (value instanceof BigInteger) {
this.put(key, ((BigInteger) value).add(BigInteger.ONE));
} else if (value instanceof BigDecimal) {
this.put(key, ((BigDecimal) value).add(BigDecimal.ONE));
} else if (value instanceof Integer) {
this.put(key, (Integer) value + 1);
} else if (value instanceof Long) {
this.put(key, (Long) value + 1);
} else if (value instanceof Double) {
this.put(key, (Double) value + 1);
} else if (value instanceof Float) {
this.put(key, (Float) value + 1);
} else {
throw new JSONException("Unable to increment [" + JSONUtil.quote(key) + "].");
return this;
/**
* 对值加一,如果值不存在,赋值1,如果为数字类型,做加一操作
* @param key A key string.
* @return this.
* @throws JSONException 如果存在值非Integer, Long, Double, 或 Float.
public JSONObject increment(String key) throws JSONException {
Object value = this.getObj(key);
if (value == null) {
this.put(key, 1);
} else if (value instanceof BigInteger) {
this.put(key, ((BigInteger) value).add(BigInteger.ONE));
} else if (value instanceof BigDecimal) {
this.put(key, ((BigDecimal) value).add(BigDecimal.ONE));
} else if (value instanceof Integer) {
this.put(key, (Integer) value + 1);
} else if (value instanceof Long) {
this.put(key, (Long) value + 1);
} else if (value instanceof Double) {
this.put(key, (Double) value + 1);
} else if (value instanceof Float) {
this.put(key, (Float) value + 1);
} else {
throw new JSONException("Unable to increment [" + JSONUtil.quote(key) + "].");
return this;
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param string 字符串
* @return 适合在JSON中显示的字符串
public static String quote(String string) {
return quote(string, true);
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param str 字符串
* @param writer Writer
* @return Writer
* @throws IOException IO异常
public static Writer quote(String str, Writer writer) throws IOException {
return quote(str, writer, true);
/**
* 对所有双引号做转义处理(使用双反斜杠做转义)<br>
* 为了能在HTML中较好的显示,会将</转义为<\/<br>
* JSON字符串中不能包含控制字符和未经转义的引号和反斜杠
* @param string 字符串
* @param isWrap 是否使用双引号包装字符串
* @return 适合在JSON中显示的字符串
* @since 3.3.1
public static String quote(String string, boolean isWrap) {
StringWriter sw = new StringWriter();
try {
return quote(string, sw, isWrap).toString();
} catch (IOException ignored) {
// will never happen - we are writing to a string writer
return StrUtil.EMPTY;
return new JSONArray(value).toString();
} else {
return JSONUtil.quote(value.toString());
/**
* 对值加一,如果值不存在,赋值1,如果为数字类型,做加一操作
* @param key A key string.
* @return this.
* @throws JSONException 如果存在值非Integer, Long, Double, 或 Float.
public JSONObject increment(String key) throws JSONException {
Object value = this.getObj(key);
if (value == null) {
this.put(key, 1);
} else if (value instanceof BigInteger) {
this.put(key, ((BigInteger) value).add(BigInteger.ONE));
} else if (value instanceof BigDecimal) {
this.put(key, ((BigDecimal) value).add(BigDecimal.ONE));
} else if (value instanceof Integer) {
this.put(key, (Integer) value + 1);
} else if (value instanceof Long) {
this.put(key, (Long) value + 1);
} else if (value instanceof Double) {
this.put(key, (Double) value + 1);
} else if (value instanceof Float) {
this.put(key, (Float) value + 1);
} else {
throw new JSONException("Unable to increment [" + JSONUtil.quote(key) + "].");
return this;