public void parse(JsonNode root) throws Exception {
        ArrayNode orgArray = getOrThrowArray(root, "Orgs");

        String orgId;
        String apiId;

        for (JsonNode orgNode : orgArray) {
            orgId = getOrThrow(orgNode, "OrganizationBean.id").asText();
            ArrayNode apiArray = getOrThrowArray(orgNode, "Apis");

            LOGGER.trace("Visiting Org: {}", orgId);
            visitOrg(orgId, orgNode);

            for (JsonNode apiNode : apiArray) {
                apiId = getOrThrow(apiNode, "ApiBean.id").asText();
                ArrayNode versionArray = getOrThrowArray(apiNode, "Versions");

                LOGGER.trace("Visiting API: {}", apiId);
                visitApi(apiId, apiNode);

                for (JsonNode versionNode : versionArray) {
                    LOGGER.trace("Visiting API Version: {}", versionNode);
                    visitApiVersion(orgId, apiId, versionNode);
                }
            }
        }
    }
Provide the root node of an Apiman export file and iterate through, visiting Org, Api, ApiVersion.
migration-assistant/src/main/java/io/apiman/migration/fix_pre_21/ApimanExportVisitor.java