我正在尝试将 java 原始数组转换为 JSONArray,但我有奇怪的行为。我的代码如下。
long [] array = new long[]{1, 2, 3};
JSONArray jsonArray = new JSONArray(Arrays.asList(array));
jsonArray.toString();
输出是["[J@532372dc"]
为什么我会得到这个输出?我想得到这样的输出[1, 2, 3]
problem:
Arrays.asList(array)
您无法将原始类型数组转换为集合,因为它需要是对象类型数组。自从asList
期望一个T...
请注意,它必须是一个对象。
为什么它有效?
那是因为在将其传递到参数中时,它将autoBox因为数组是对象类型。
解决方案:
您需要将其更改为其包装类,并将其用作数组。
sample:
Long[] array = new Long[]{1L, 2L, 3L};
JSONArray jsonArray = new JSONArray(Arrays.asList(array));
jsonArray.toString();
result:
[1, 2, 3]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)