diff --git a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
index 10eee71d1..79e359785 100644
--- a/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
+++ b/hutool-core/src/main/java/cn/hutool/core/util/ObjUtil.java
@@ -186,15 +186,13 @@ public class ObjUtil {
*
*
* 1. == null
- * 2. equals(null)
*
*
* @param obj 对象
* @return 是否为null
*/
public static boolean isNull(final Object obj) {
- //noinspection ConstantConditions
- return null == obj || obj.equals(null);
+ return null == obj;
}
/**
diff --git a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
index 7c326e38e..f1000813a 100755
--- a/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
+++ b/hutool-json/src/main/java/cn/hutool/json/InternalJSONUtil.java
@@ -59,8 +59,8 @@ public final class InternalJSONUtil {
* @throws JSONException If the value is or contains an invalid number.
*/
static String valueToString(final Object value) throws JSONException {
- if (value == null || value instanceof JSONNull) {
- return JSONNull.NULL.toString();
+ if (value == null) {
+ return StrUtil.NULL;
}
if (value instanceof JSONString) {
try {
@@ -94,7 +94,7 @@ public final class InternalJSONUtil {
public static Object stringToValue(final String string) {
// null处理
if (StrUtil.isEmpty(string) || StrUtil.NULL.equalsIgnoreCase(string)) {
- return JSONNull.NULL;
+ return null;
}
// boolean处理
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSON.java b/hutool-json/src/main/java/cn/hutool/json/JSON.java
index 4d0cf063e..e06aaa72c 100755
--- a/hutool-json/src/main/java/cn/hutool/json/JSON.java
+++ b/hutool-json/src/main/java/cn/hutool/json/JSON.java
@@ -36,7 +36,9 @@ public interface JSON extends Cloneable, Serializable {
* @see BeanPath#get(Object)
* @since 4.0.6
*/
- Object getByPath(String expression);
+ default Object getByPath(String expression){
+ return BeanPath.of(expression).get(this);
+ }
/**
* 设置表达式指定位置(或filed对应)的值
@@ -59,7 +61,9 @@ public interface JSON extends Cloneable, Serializable {
* @param expression 表达式
* @param value 值
*/
- void putByPath(String expression, Object value);
+ default void putByPath(String expression, Object value){
+ BeanPath.of(expression).set(this, value);
+ }
/**
* 通过表达式获取JSON中嵌套的对象
diff --git a/hutool-json/src/main/java/cn/hutool/json/JSONArray.java b/hutool-json/src/main/java/cn/hutool/json/JSONArray.java
index 30c01f3e4..2fe50ad3f 100755
--- a/hutool-json/src/main/java/cn/hutool/json/JSONArray.java
+++ b/hutool-json/src/main/java/cn/hutool/json/JSONArray.java
@@ -1,13 +1,12 @@
package cn.hutool.json;
-import cn.hutool.core.bean.BeanPath;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.convert.impl.ArrayConverter;
import cn.hutool.core.lang.func.Filter;
import cn.hutool.core.lang.mutable.Mutable;
-import cn.hutool.core.lang.mutable.MutableObj;
import cn.hutool.core.lang.mutable.MutableEntry;
+import cn.hutool.core.lang.mutable.MutableObj;
import cn.hutool.core.text.StrJoiner;
import cn.hutool.core.util.ObjUtil;
import cn.hutool.json.serialize.JSONWriter;
@@ -192,19 +191,9 @@ public class JSONArray implements JSON, JSONGetter, List