diff --git a/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java b/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java index e7f679ca5..359ae57e9 100755 --- a/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java +++ b/hutool-json/src/main/java/cn/hutool/json/ObjectMapper.java @@ -145,12 +145,12 @@ public class ObjectMapper { mapFromTokener(new JSONTokener((InputStream) source, jsonArray.getConfig()), jsonArray, filter); } else if (source instanceof byte[]) { final byte[] bytesSource = (byte[]) source; - if('[' == bytesSource[0]){ + if ('[' == bytesSource[0] && ']' == bytesSource[bytesSource.length - 1]) { mapFromTokener(new JSONTokener(IoUtil.toStream(bytesSource), jsonArray.getConfig()), jsonArray, filter); - }else{ + } else { // https://github.com/dromara/hutool/issues/2369 // 非标准的二进制流,则按照普通数组对待 - for(final byte b : bytesSource){ + for (final byte b : bytesSource) { jsonArray.add(b); } } @@ -258,7 +258,7 @@ public class ObjectMapper { */ private static void mapFromBean(final Object bean, final JSONObject jsonObject, final Filter> filter) { final CopyOptions copyOptions = InternalJSONUtil.toCopyOptions(jsonObject.getConfig()); - if(null != filter){ + if (null != filter) { copyOptions.setFieldEditor((entry -> filter.accept(entry) ? entry : null)); } BeanUtil.beanToMap(bean, jsonObject, copyOptions); diff --git a/hutool-json/src/test/java/cn/hutool/json/IssueI59LW4Test.java b/hutool-json/src/test/java/cn/hutool/json/IssueI59LW4Test.java index 97505cc71..360517388 100644 --- a/hutool-json/src/test/java/cn/hutool/json/IssueI59LW4Test.java +++ b/hutool-json/src/test/java/cn/hutool/json/IssueI59LW4Test.java @@ -16,7 +16,7 @@ public class IssueI59LW4Test { @Test public void bytesInJSONArrayTest(){ final JSONArray jsonArray = JSONUtil.createArray().set(new byte[]{1}); - Assert.assertEquals("[\"AQ==\"]", jsonArray.toString()); + Assert.assertEquals("[[1]]", jsonArray.toString()); final byte[] bytes = jsonArray.getBytes(0); Assert.assertArrayEquals(new byte[]{1}, bytes);