【问题标题】:How to get array number JSON android如何获取数组编号JSON android
【发布时间】:2016-03-03 07:21:23
【问题描述】:

我有 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 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();
            }

我不知道在“课程”之后获取数组编号。

【问题讨论】:

  • 你能把你的代码贴出来吗...(格式)请
  • “elements”我可以通过getJSONArray获得,“id”我可以通过getInt获得,“name”我可以通过getString获得,“links”我可以通过getJSONObject获得。那么“课程”我可以通过什么获得?
  • 编辑您的问题并添加您的解析代码。
  • İ如果我是你,我更喜欢 Gson。 github.com/google/gson

标签: android json


【解决方案1】:

差不多了。一旦你得到你的

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);
}

上面会将这些数字保存在一个数组中并打印出来:

数量:15

数量:30

数量:46

数量:47

请记住,“课程”键可能不存在,数组可能为空等。

【讨论】:

    【解决方案2】:

    coursesJSONArray,所以你可以这样做:

    JSONArray coursesArray = linksObject.getJSONArray("courses");
    

    更新:

    coursesArray 获取值:

    int value = coursesArray.optInt(position);
    

    【讨论】:

    • 如何使用课程数组?我想要数组int []。帮帮我!!
    【解决方案3】:

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

    特别是对于“课程”,一旦你被解析到那里,我会使用HashMap&lt;String,List&lt;Integer&gt;&gt;

    【讨论】:

      猜你喜欢
      • 2019-02-28
      • 1970-01-01
      • 1970-01-01
      • 2014-11-25
      • 1970-01-01
      • 2020-08-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多