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

Posted

技术标签:

【中文标题】仅访问 JSON 数组中的第一个对象【英文标题】:Access only the First Object from a JSON Array 【发布时间】:2021-06-09 10:15:55 【问题描述】:

这是我下面代码中的 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】:

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

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

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

【讨论】:

以上是关于仅访问 JSON 数组中的第一个对象的主要内容,如果未能解决你的问题,请参考以下文章

如果第二个数组的项目包含数组的第一个对象的 id,则合并 Angular 8 中的两个对象数组

为啥 ios 中的通知仅显示附件数组中的第一个附件,即使还有一个附件。

ngAfterViewInit 仅单击数组中的第一个按钮。激活其他后续数组元素引用的结果

将对象添加到数组后,tableview 不会更新

仅存储多个用户生成值中的第一个的动态分配数组

如何仅从 React 中的 API 获取第一个数据?