Android 如何获取数组号

Android 如何获取数组号,android,json,Android,Json,我有: {"elements":[{"id":5,"name":"Mathematics","shortName":"math","links":{"courses":[15,30,46,47]}}]} 我的代码: List<NameValuePair> params = new ArrayList<NameValuePair>(); // getting JSON string from URL JSONObject

我有:

{"elements":[{"id":5,"name":"Mathematics","shortName":"math","links":{"courses":[15,30,46,47]}}]}
我的代码:

 List<NameValuePair> params = new ArrayList<NameValuePair>();
            // getting JSON string from URL
            JSONObject json = jParser.makeHttpRequest(url_all_products, "GET", params);

            // Check your log cat for JSON reponse
            //Log.d("All Products: ", json.toString());

            try {
                products = json.getJSONArray("elements");

                for (int i = 0; i < products.length(); i++) {
                    JSONObject c = products.getJSONObject(i);

                    // Storing each json item in variable
                    int ids = c.getInt(TAG_PID);
                    String id = String.valueOf(ids);

                    if (id.compareTo(id_kh) == 0) {
                        object = c.getJSONObject("links");
                        JSONArray courses = object.getJSONArray("courses");///???????????
                        //result = courses.split("[,]");
                        Toast.makeText(getBaseContext(),"abc",Toast.LENGTH_LONG).show();
                        break;
                    }
                }
            } catch (JSONException e) {
                e.printStackTrace();
            }
List params=new ArrayList();
//从URL获取JSON字符串
JSONObject json=jParser.makeHttpRequest(url_all_products,“GET”,params);
//检查日志cat中的JSON响应
//Log.d(“所有产品:,json.toString());
试一试{
products=json.getJSONArray(“元素”);
对于(int i=0;i

我不知道如何在“courses”之后获取数组号。

courses
是一个
JSONArray
,因此您可以这样做:

JSONArray coursesArray = linksObject.getJSONArray("courses");
更新:

要从
coursesArray
获取值,请执行以下操作:

int value = coursesArray.optInt(position);

我会使用HashMaps。这里有一个例子( )如何从JSON字符串获取它


特别是对于“courses”,一旦解析到那里,我会在那里使用
HashMap

。一旦你得到你的

JSONArray courses = object.getJSONArray("courses");
只需迭代其值:

// you wanted these numbers in an array
// so let's create one, with size being number of elements in 
// JSONArray courses
int[] courseIds = new int[courses.length()];

for (int j=0; j<courses.length(); j++) {
    // assign current number to the appropriate element in your array of ints
    coursesId[j] = courses.getInt(j);
    Log.d("TAG", "number: " + number);
}
//您希望将这些数字放在一个数组中
//让我们创建一个,大小为
//JSONArray课程
int[]courseIds=新int[courses.length()];

对于(int j=0;JC)你可以发布你拥有的代码吗…(格式)请“元素”我可以通过getJSONArray获得,“id”我可以通过getInt获得,“名称”我可以通过getString获得,“链接”我可以通过getJSONObject获得。所以“课程”我能通过什么?编辑你的问题并添加你的解析代码。如果我是你,我更喜欢Gson。我如何使用coursesArray?我想要数组int[]。帮帮我!!