仅访问 JSON 数组中的第一个对象

时间:2021-03-11 12:04:28

标签: java android arrays json

这是我下面代码中的json:

"ict":[
   {
      "module1":{
         "1":[
            "OS",
            "Operating system"
         ],
         "2":[
            "CA",
            "Computer Application"
         ],
         "3":[
            "CM",
            "Computational Mathematics"
         ],
         "4":[
            "CA",
            "Computer Application"
         ],
         "5":[
            "Programming",
            "Structured Programming"
         ]
      },

我想访问这部分

"1":["OS","Operating system"]

但是在不获取整个字符串的情况下获取字符串 "OS"

当我运行我的java代码时:

private void addItemsFromJSON() {
    try {
        JSONObject jsonObject = new JSONObject(readJSONDataFromFile());
        JSONArray coursea = jsonObject.getJSONArray("ict");

         for (int i = 0; i < coursea.length(); i++) {
                JSONObject cc = coursea.getJSONObject(i);
                JSONObject contact = cc.getJSONObject("module1");
                courses.add(new course(contact.getString("1"),"",String.valueOf(content.get(ran.nextInt(content.size())))));

            }




    } catch (JSONException | IOException e) {
        Log.d(TAG, "addItemsFromJSON: 777", e);
    }
}

我得到的输出是 ["OS", "Operating system"]

如何仅从具有多个值的 json 键数组中检索第一个对象?

1 个答案:

答案 0 :(得分:0)

“1”处的数据引用另一个 JSONArray,因此要获取数组中的第一项,您可以执行以下操作:

JSONArray array = contact.getJSONArray("1");
array.getString(0);

在 JSON 中对象使用 {} 表示,数组使用 [] 表示。如果您尝试访问 JSON 对象中的特定值,那么它实际上只是通过数组和对象遵循路径的一种情况。