### 版本情况

JDK版本：oracle jdk1.8.0_301
hutool版本：5.8.12（请确保最新尝试是否还有问题）
                     新版依然存在，只不过因为 ”issue#3286, 增加安全检查，最多增加10倍“，无法传入太大的数字字符串

### 问题描述（包括截图）
这个问题是因为 cn.hutool.json.JSONObject#putByPath 方法调用 BeanPath 类解析 Bean 路径表达式，而有的业务需求把json key 作为数字字符串传入，导致解析时把其作为集合对应的index值，从而出现集合中 add 了很多 null 值。BeanPath 类本质处理逻辑没有问题，因为 Bean 字段名不可能是纯数字，但 json 中可能出现纯数字的字符串作为 key。
详细情况，如下图：
<img width="877" alt="1714308312307" src="https://github.com/dromara/hutool/assets/60088111/a982d72f-98e1-458e-8965-8cb3156b5bb7">

1. 复现代码

```java
        JSONObject result = JSONUtil.createObj(JSONConfig.create().setIgnoreNullValue(false));

        List<BigDecimal> values = ListUtil.of(BigDecimal.ONE, BigDecimal.ZERO, BigDecimal.TEN, BigDecimal.ZERO);
        for (int i = 0; i < values.size(); i++) {
            BigDecimal decimal = values.get(i);
            result.putByPath(String.format("%s.%s[%d].name", "aa", "123", i), DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN));
            result.putByPath(String.format("%s.%s[%d].value", "aa", "123", i), decimal);
        }

        System.out.println(result);
```

2. 堆栈信息
<img width="602" alt="1714308206449" src="https://github.com/dromara/hutool/assets/60088111/b8b08f5b-917a-4e2e-86af-8dfd33e8442d">

3. 测试涉及到的文件（注意脱密）
（无）
.JSONObject#putByPath 方法传入的路径表达式中存在纯数字字符串生成的 json 对象有问题
This is a GitHub Issue
repo:hutool
owner:dromara
Title : .JSONObject#putByPath 方法传入的路径表达式中存在纯数字字符串生成的 json 对象有问题
Issue date:

--- start body ---
### 版本情况

JDK版本：oracle jdk1.8.0_301
hutool版本：5.8.12（请确保最新尝试是否还有问题）
                     新版依然存在，只不过因为 ”issue#3286, 增加安全检查，最多增加10倍“，无法传入太大的数字字符串

### 问题描述（包括截图）
这个问题是因为 cn.hutool.json.JSONObject#putByPath 方法调用 BeanPath 类解析 Bean 路径表达式，而有的业务需求把json key 作为数字字符串传入，导致解析时把其作为集合对应的index值，从而出现集合中 add 了很多 null 值。BeanPath 类本质处理逻辑没有问题，因为 Bean 字段名不可能是纯数字，但 json 中可能出现纯数字的字符串作为 key。
详细情况，如下图：
<img width="877" alt="1714308312307" src="https://github.com/dromara/hutool/assets/60088111/a982d72f-98e1-458e-8965-8cb3156b5bb7">

1. 复现代码

```java
        JSONObject result = JSONUtil.createObj(JSONConfig.create().setIgnoreNullValue(false));

        List<BigDecimal> values = ListUtil.of(BigDecimal.ONE, BigDecimal.ZERO, BigDecimal.TEN, BigDecimal.ZERO);
        for (int i = 0; i < values.size(); i++) {
            BigDecimal decimal = values.get(i);
            result.putByPath(String.format("%s.%s[%d].name", "aa", "123", i), DateUtil.format(new Date(), DatePattern.NORM_DATE_PATTERN));
            result.putByPath(String.format("%s.%s[%d].value", "aa", "123", i), decimal);
        }

        System.out.println(result);
```

2. 堆栈信息
<img width="602" alt="1714308206449" src="https://github.com/dromara/hutool/assets/60088111/b8b08f5b-917a-4e2e-86af-8dfd33e8442d">

3. 测试涉及到的文件（注意脱密）
（无）
--- end body ---

The issue in the JSONObject#putByPath method of Hutool library allows for incorrect handling of JSON keys that are pure numeric strings. This can lead to unexpected behavior where null values are added to collections instead of the intended values. While this is a bug in functionality, it does not present a security vulnerability as it does not allow for unauthorized access or manipulation of data.