将字符串动态插入到Android中的字符串数组中
我从服务器接收一些数据作为JSON响应。我提取我需要的数据,并且我想将这些数据放入一个字符串数组中。我不知道数据的大小,所以我不能将数组声明为静态数组。我宣布一个动态字符串数组:将字符串动态插入到Android中的字符串数组中
String[] xCoords = {};
此后,我在数组中插入数据:
for (int i=0; i<jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
xCoords[i] = json_data.getString("xCoord");
}
但我收到
java.lang.ArrayIndexOutOfBoundsException
Caused by: java.lang.ArrayIndexOutOfBoundsException
什么是动态插入的字符串的方法成一个字符串数组?
使用ArrayList虽然是不是真的需要它,但只是了解它:
ArrayList<String> stringArrayList = new ArrayList<String>();
for (int i=0; i<jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
stringArrayList.add(json_data.getString("xCoord")); //add to arraylist
}
//if you want your array
String [] stringArray = stringArrayList.toArray(new String[stringArrayList.size()]);
尝试这样
String stringArray[];
stringArray=new String[jArray.length()];
String xCoords[]=new String[jArray.length()];;
for (int i=0; i<jArray.length(); i++) {
JSONObject json_data = jArray.getJSONObject(i);
xCoords[i] = json_data.getString("xCoord");
}
插入时,此作品,但是当我尝试从它提取数据'for(int i = 0; i
检查xCoords [i]的值。打印日志以查看该值。是否存在长度问题或仅因为xCoords [i]不是双值? – Rasel
问题与长度有关 - 如果我将'for {}'的参数更改为'for(int i = 0; i
我与此尝试也问题,但如果我只键入'字符串[] xCoords = xCoordsList.toArray ();'它给了我一个'类型不匹配:不能从Object []转换为String []',所以我把这行代码改成String [] xCoords =(String [])xCoordsList.toArray();'然后示出了一个 '11月8日至四日:54:24.462:ERROR/AndroidRuntime(1173):java.lang.ClassCastException:致[Ljava.lang.Object;'错误。 –
对不起,我编辑的答案..只是添加字符串转换为最后statement'(字符串[])' –
这是我的观点 - 甚至与编辑后的版本的应用程序停止(你必须强制关闭的),也logcat的显示'java.lang.ClassCastException:;:java.lang.ClassCastException:[Ljava.lang.Object'' 所致[Ljava.lang.Object;' –