Android上的新JSONArray(String [])

时间:2014-03-13 17:17:28

标签: java android json api

我试图在一个链接文件夹中的文件中创建一个JSONArray到一个Android项目,并且eclipse突然(之前没有这样做)给我错误:  调用需要API级别19(当前最小值为14):new org.json.JSONArray

发生的代码如下:

String[] s = (save_val.trim().equals(""))?new String[]{}:save_val.split("\n");
JSONObject o = null;
if (!Arrays.equals(s, save_names)){

    new JSONArray(s); // this is where the error is shown

编辑:解决方法实际上该方法在API 19之前尚未引入,但如果您使用(如我的情况)字符串数组或其他promitives,您可以简单地执行:

    JSONArray s_values = new JSONArray();
    for (int i = 0; i < s.length; i++){
        s_values.put(yourarray[i]);
    }

这不应该慢任何

3 个答案:

答案 0 :(得分:7)

API级别19 之前,似乎没有引入构造函数JSONArray(Object array)

http://developer.android.com/reference/org/json/JSONArray.html#JSONArray(java.lang.Object)

您可以将manifest中的min API 版本更改为19或

您可以将Object array转换为Collection array ArrayList,并使用{strong> API 1 中提供的JSONArray的Collection数组构造函数。

祝你好运!

答案 1 :(得分:0)

您正在构建带有字符串数组的JSONArray,根据the documentation,这些字符串仅在API级别19或更高级别中可用。您需要使用替代构造函数或将清单中的最小API级别更改为19以使构造函数可用。

答案 2 :(得分:0)

您可以通过提供集合来使用替代构造函数。这将通过复制集合中给出的所有值来创建JSONArray。

JSONArray arr = new JSONArray(collection);