我正在尝试将Java基本数组转换为JSONArray,但是我的行为很奇怪。我的代码如下。
long [] array = new long[]{1, 2, 3};
JSONArray jsonArray = new JSONArray(Arrays.asList(array));
jsonArray.toString();
输出是 ["[J@532372dc"]
为什么我得到此输出?我想得到这样的输出[1, 2, 3]
问题:
Arrays.asList(array)
您不能将原始类型的数组转换为需要为Objects类型的数组的Collections。由于asList
需要T...
注意,它必须是一个对象。
它为什么起作用?
那是因为在传入参数时它将自动装箱,因为数组是对象类型。
解决方案:
您需要将其更改为其包装器类,并将其用作数组。
样本:
Long[] array = new Long[]{1L, 2L, 3L};
JSONArray jsonArray = new JSONArray(Arrays.asList(array));
jsonArray.toString();
结果:
[1, 2, 3]
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句