【问题标题】:java primitive array to JSONArrayjava原始数组到JSONArray
【发布时间】:2014-10-05 04:21:46
【问题描述】:

我正在尝试将 java 原始数组转换为 JSONArray,但我的行为很奇怪。我的代码如下。

long [] array = new long[]{1, 2, 3};
JSONArray jsonArray = new JSONArray(Arrays.asList(array));
jsonArray.toString();

输出是["[J@532372dc"]

为什么我会得到这个输出?我想得到这样的输出[1, 2, 3]

【问题讨论】:

  • new JSONArray(array) 足以为构造函数提供(原始)数组。

标签: java android json arrays


【解决方案1】:

如果您只想将原始整数数组转换为 JSONArray,那就长话短说吧。

JSONArray jsonArray = new JSONArray(Arrays.asList(longArray).get(0));

* 你需要一个 try/catch 块

【讨论】:

    【解决方案2】:

    问题:

    Arrays.asList(array)
    

    您不能将原始类型数组转换为集合,它需要是 Objects 类型的数组。由于asList 需要T...,请注意它必须是一个对象。

    为什么有效?

    那是因为在参数中传递它时,它会 autoBox 它,因为数组是类型对象。

    解决方案:

    您需要将其更改为它的包装类,并将其用作数组。

    样本:

    Long[] array = new Long[]{1L, 2L, 3L};
    JSONArray jsonArray = new JSONArray(Arrays.asList(array));
    jsonArray.toString();
    

    结果:

    [1, 2, 3]
    

    【讨论】:

    • 您需要将array 的值转换为long,否则它将给出Type mismatch: cannot convert from int to Long
    • @Apoorv 不用我直接加个修饰符就行了。
    • 是的,无论哪种方式都可以。
    • 我们如何做反向操作。?就像我有 String[] 并且我想将其转换为 json 格式,例如 {'0','1','2'}。
    【解决方案3】:

    试试这个..

    您需要将 long 转换为 Long 然后才能在JSONArray

    中使用
        long [] array = new long[]{1, 2, 3};
        List<Long> longArray = asList(array);
    
        JSONArray jsonArray = new JSONArray(longArray);
        jsonArray.toString();
    

    asList()方法

    public static List<Long> asList(final long[] l) {
        return new AbstractList<Long>() {
            public Long get(int i) {return l[i];}
            // throws NPE if val == null
            public Long set(int i, Long val) {
                Long oldVal = l[i];
                l[i] = val;
                return oldVal;
            }
            public int size() { return l.length;}
        };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-22
      • 2016-01-14
      • 1970-01-01
      • 2011-09-04
      • 2012-08-22
      • 2011-08-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多