我正在尝试将 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)
您不能将原始类型的数组转换为集合,因为它需要是对象类型的数组。由于 asList
需要一个 T...
请注意它必须是一个对象。
为什么有效?
那是因为在参数中传递它时,它会autoBox 它,因为数组是类型对象。
解决方法:
您需要将其更改为它的包装类,并将其用作数组。
示例:
Long[] array = new Long[]{1L, 2L, 3L};
JSONArray jsonArray = new JSONArray(Arrays.asList(array));
jsonArray.toString();
结果:
[1, 2, 3]
关于java原始数组到JSONArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25258529/