求教各位大侠,如何使用Java语言遍历这段Json数组的每个元素,求代码示例

[
    {
        "projectName": "bingo-paas",
        "appName": "bingo-devops",
        "progType": "GENERAL",
        "deployType": "CONTAINER",
        "projectId": "p-19sn3n1sv66c0",
        "progId": "g-19sn59o2m29e0",
        "progName": "bingo-devops-console",
        "packs": [
            {
                "packId": "k-19ssm5j5dc220",
                "packCode": "bingo-devops-console",
                "packUri": "registry.bingosoft.net/bingodevops/bingo-devops-console",
                "packVersion": "latest",
                "repo": {
                    "repoId": "r-1adnr9sbnshbo",
                    "repoName": "registry",
                    "repoType": "CONTAINER",
                    "repoUri": "http://registry.bingosoft.net",
                    "handler": {},
                    "projectName": "bingo-paas",
                    "credentialId": "d-1adnr9pusbmkp",
                    "repoServer": "http://registry.bingosoft.net",
                    "hibernateLazyInitializer": {},
                    "projectId": "p-19sn3n1sv66c0",
                    "credentialName": "paas_app_ecr"
                },
                "progId": "g-19sn59o2m29e0",
                "appId": "a-19sn3okvsq0i0"
            }
        ],
        "appId": "a-19sn3okvsq0i0",
        "createdOn": "2018-02-25 02:21:57",
        "createdBy": "308b29c4-3f5b-4a3d-9d5b-4e41ae4dda81",
        "createdByName": "李强"
    },
    {
        "projectName": "bingo-paas",
        "appName": "bingo-devops",
        "progType": "GENERAL",
        "deployType": "CONTAINER",
        "projectId": "p-19sn3n1sv66c0",
        "progId": "g-19ta9di7jmpq0",
        "progName": "bingo-devops-agent",
        "packs": [
            {
                "packId": "gp-19tmlpje1inrc",
                "packCode": "bingo-devops-agent",
                "packUri": "registry.bingosoft.net/bingodevops/bingo-devops-agent",
                "packVersion": "latest",
                "repo": {
                    "repoId": "r-1adnr9sbnshbo",
                    "repoName": "registry",
                    "repoType": "CONTAINER",
                    "repoUri": "http://registry.bingosoft.net",
                    "handler": {},
                    "projectName": "bingo-paas",
                    "credentialId": "d-1adnr9pusbmkp",
                    "repoServer": "http://registry.bingosoft.net",
                    "hibernateLazyInitializer": {},
                    "projectId": "p-19sn3n1sv66c0",
                    "credentialName": "paas_app_ecr"
                },
                "progId": "g-19ta9di7jmpq0",
                "appId": "a-19sn3okvsq0i0"
            }
        ],
        "appId": "a-19sn3okvsq0i0",
        "createdOn": "2018-02-25 02:21:57",
        "createdBy": "308b29c4-3f5b-4a3d-9d5b-4e41ae4dda81",
        "createdByName": "李强"
    }
]
    public static List<Map<String,String>> sum(String json) {
        JSONArray analyse = JSONArray.parseArray(json);
        List<Map<String, String>> okList = new LinkedList<Map<String, String>>();
        for (int i = 0; i < analyse.size(); i++) {
            // 遍历 jsonarray 数组,把每一个对象转成 json 对象
            Map<String, String> okMap = new HashMap<String, String>();
            String progId = NullTransfer.transfer(analyse.getJSONObject(i).get("progId").toString());
            String progType = NullTransfer.transfer(analyse.getJSONObject(i).get("progType").toString());
            String deployType = NullTransfer.transfer(analyse.getJSONObject(i).get("deployType").toString());
            okMap.put("progId", progId);
            okMap.put("progType", progType);
            okMap.put("deployType", deployType);

            JSONObject job = analyse.getJSONObject(i);
            Gson gson = new Gson();
            Map<String, String> dataMap = gson.fromJson(job.toJSONString(), new TypeToken<Map<String, Object>>() {
            }.getType());
            Object dataObject = dataMap.get("packs");
            List<Map<String, Object>> resourceList = (List<Map<String, Object>>) dataObject;
            for (int j = 0; j < resourceList.size(); j++) {
                String packId = NullTransfer.transfer(resourceList.get(j).get("packId").toString());
                //String progId = NullTransfer.transfer(resourceList.get(j).get("progId").toString());
                String packUri = NullTransfer.transfer(resourceList.get(j).get("packUri").toString());
                String packVersion = NullTransfer.transfer(resourceList.get(j).get("packVersion").toString());
                okMap.put("packId", packId);
                okMap.put("progId", progId);
                okMap.put("packUri", packUri);
                okMap.put("packVersion", packVersion);
            }
            okList.add(okMap);
        }
        return okList;

    }