我正在解析JSON,如下所示
[
{
"vendor_itms_arr": [
"265",
"141",
"148"
]
}
]
这是我的程序
import java.util.ArrayList;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;
public class MrTest {
public static void main(String args[]) throws JSONException
{
String json = "[\r\n" +
" {\r\n" +
" \"vendor_itms_arr\": [\r\n" +
" \"265\",\r\n" +
" \"141\",\r\n" +
" \"148\"\r\n" +
" ]\r\n" +
" }\r\n" +
"]";
JSONArray array = new JSONArray(json);
ArrayList<Integer> vendor_itms_arr = new ArrayList<Integer>();
for(int i=0;i<array.length();i++)
{
JSONObject jb1 = array.getJSONObject(i);
JSONArray jr1 = jb1.getJSONArray("vendor_itms_arr");
if (jr1 != null) {
int len = jr1.length();
for (int k=0;i<len;i++){
int val = (Integer) jr1.get(k);
vendor_itms_arr.add(val);
}
}
}
System.out.println(vendor_itms_arr);
}
}
我正在
Exception in thread "main" java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
at MrTest.main(MrTest.java:36)
您能告诉我如何构建数组
int constructed_array[] = { 265 , 141 , 148};
答案 0 :(得分:4)
int val = Integer.parseInt(jr1.get(k));
答案 1 :(得分:1)
将程序从Integer更改为String并尝试:
String constructed_array[] = { "265", "141", "148" };
List<Integer> myNewList = new ArrayList<Integer>(constructed_array.length);
for (String str : constructed_array) {
myNewList.add(Integer.parseInt(str));
}
现在对象myNewList包含[265,141,148]。
修改强>
对于原始数组,您可以这样做:
String constructed_array[] = { "265", "141", "148" };
int[] myPrimitiveArray = new int[constructed_array.length];
for (int i = 0; i < constructed_array.length; i++) {
myPrimitiveArray[i] = Integer.parseInt(constructed_array[i]);
}
myPrimitiveArray是一个包含[265,141,148]的基本数组。