java - 使用简单 JSON Jar 从数组中读取 JSON 对象

标签 java json

我有一个如下的 JSON 文件

{
    "ClassId": "1",
    "ClassName": "mobiles",
    "ClassItems": [
    {
        "ItemId": "1",
        "ItemName": "Nokia",
        "ItemImageName": "nokia.jpg",
        "ItemUnitPrice": "200.00",
        "ItemDiscountPercent": "0" 
    },
    {
        "ItemId": "2",
        "ItemName": "Samsung",
        "ItemImageName": "samsung.jpg",
        "ItemUnitPrice": "400.00",
        "ItemDiscountPercent": "0" 
    }
    ]
}

我正在尝试访问 ClassId=1 的所有项目的 ItemId。我能够打印完整的 json 数组,但无法单独找到打印 itemId。

我使用的java代码如下:

public class JSONExample {

    /**
     * @param args the command line arguments
     * @throws java.io.IOException
     */
    public static void main(String[] args) throws IOException {
        JSONParser parser=new JSONParser();
        try {
            Object obj=parser.parse(new FileReader("JSON/TestJson.json"));
            JSONObject jsonObject=(JSONObject) obj;

            String classId=(String) jsonObject.get("ClassId");
            String className=(String) jsonObject.get("ClassName");
            if(classId.equals("1")){                

                JSONArray itemList = (JSONArray) jsonObject.get( "ClassItems" );

                Iterator iterator=itemList.iterator();

                while(iterator.hasNext())
                {   
                    System.out.println(itemList.get(1));                    
                    iterator.next();

                }
            }

        } catch (FileNotFoundException ex) {
            Logger.getLogger(JSONExample.class.getName()).log(Level.SEVERE, null, ex);
        } catch (ParseException ex) {
            Logger.getLogger(JSONExample.class.getName()).log(Level.SEVERE, null, ex);
        }
    }   
}

最佳答案

String itemId;
for (int i = 0; i < itemList.length(); i++) {
        JSONObject obj= itemList.getJSONObject(i);
        itemId=(String) jsonObject.get("ItemId");
}

尝试上面的方法而不是迭代器。 注意:如果您使用(导入)org.json.simple.JSONArray,则必须使用 JSONArray.size() 来获取所需的数据。但如果您使用的是 org.json.JSONArray,请使用 JSONArray.length()。

关于java - 使用简单 JSON Jar 从数组中读取 JSON 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31148194/

相关文章:

javascript - AJAX/JQUERY 似乎无法删除数据

json - 如何使用 scala 中的 playframework 将 json 反序列化为密封特征?

javascript - Jquery each() 类,只获取该循环中的元素

java - 从sqlite android中的表中获取单行

java - 如何用java制作3帧行走动画

java - Android NDK 中的系统调用

php - 是否有任何常见的 PHP 类用于将 SQL 结果集转换为 json

java - 有没有同时兼容Android和Java的Base64库

java - Gradle 问题 - 错误 :Execution failed for task

json - 如何用 JSON 表示 map 列表