java原始数组到JSONArray

标签 java android json arrays

我正在尝试将 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/

相关文章:

android - key 工具 : SHA256withRSA written instead of an actual SHA256 on my production keystore

android - 当 SwipeRefreshLayout 刷新时,显示和隐藏 fragment 不会立即提交(不会发生)

python - JSONEncoder 未被调用

ruby-on-rails - ActiveRecord 使用 JSON 而不是 YAML 进行序列化

javascript - 错误的 collection.length 将 JSON 数组传递给 Backbone Collection 时

java - 如何创建管道?

java - 为什么我的主类看不到日历类中的数组

android - 从首选项中删除图标

java - 从命令行使用 InputMappedClassifier

java - 使用java同时建立多个数据库连接和查询时是否应该使用同步?