Java 非常困难的XML->;按顺序使用3个数组进行JSON解析,然后返回到第一个数组以循环另一个数组

Java 非常困难的XML->;按顺序使用3个数组进行JSON解析,然后返回到第一个数组以循环另一个数组,java,json,xml,hashmap,iterator,Java,Json,Xml,Hashmap,Iterator,这是我在下面转换为JSON的原始XML。我将其转换为JSON,因为我认为它比XML更容易解析。。。下面是我如何转换它的 JSONObject jsonObjectXML = JSONML.toJSONObject(theXMLReturnedResult); 这就是我一直在尝试的代码: JSONObject jsonObjectXML = JSONML.toJSONObject(theReturnedResult); JSONArray jsonObject2 = jsonObjectXML

这是我在下面转换为JSON的原始XML。我将其转换为JSON,因为我认为它比XML更容易解析。。。下面是我如何转换它的

JSONObject jsonObjectXML = JSONML.toJSONObject(theXMLReturnedResult);

这就是我一直在尝试的代码:

JSONObject jsonObjectXML = JSONML.toJSONObject(theReturnedResult);
JSONArray jsonObject2 = jsonObjectXML.getJSONArray("childNodes");
JSONObject jsonObject       = jsonObject2.getJSONObject(0);
HashMap<String, Object> yourHashMap = new Gson().fromJson(jsonObject.toString(), HashMap.class);

Iterator hmIterator = yourHashMap.entrySet().iterator(); 

while (hmIterator.hasNext()) { 
     Map.Entry mapElement = (Map.Entry)hmIterator.next();
     System.out.print(yourHashMap);
     System.out.println(mapElement.getKey() + " " + mapElement.getValue()); 
} 
从那以后,它就一直重复着和以前一样的台词

这太疯狂了-我不知道如何处理每个单个子节点,使其不断循环以获取其他人,但也在该单个子节点内获取所需信息,其中标记名=jp06:角色分配url。然后备份并获取子节点的URL

所以我很难理解,因为我已经做了几个小时了


如果有人能帮忙,请帮忙

好吧,我几乎解决了它终于

JSONObject jsonObject = JSONML.toJSONObject(theXMLReturnedResult);
JSONArray jsonArray = jsonObject.getJSONArray("childNodes");

jsonArray.forEach(o -> {
    if (o instanceof JSONObject) {
        JSONObject crt              = (JSONObject) o;
        JSONArray jsonArray1        = crt.getJSONArray("childNodes");
        JSONObject jsonObject2      = jsonArray1.getJSONObject(0);

        if (jsonObject2.has("childNodes")) {
            String url      = jsonObject2.get("childNodes").toString()
                                         .replace("[\"", "").replace("\"]", "")
                                         .trim();
            String[] name   = url.replace("[\"", "")
                                 .replace("\"]", "")
                                 .trim()
                                 .split("/");                   
            mapHash.put(name[8], url);
        }
    }
});

你能发布原始的JSON吗?第一个块不是JSON。这已被修复@NickbUnderline java library可以将xml转换为JSON。U.xmlToJson(xml)方法将有所帮助。
JSONObject jsonObjectXML = JSONML.toJSONObject(theReturnedResult);
JSONArray jsonObject2 = jsonObjectXML.getJSONArray("childNodes");
JSONObject jsonObject       = jsonObject2.getJSONObject(0);
HashMap<String, Object> yourHashMap = new Gson().fromJson(jsonObject.toString(), HashMap.class);

Iterator hmIterator = yourHashMap.entrySet().iterator(); 

while (hmIterator.hasNext()) { 
     Map.Entry mapElement = (Map.Entry)hmIterator.next();
     System.out.print(yourHashMap);
     System.out.println(mapElement.getKey() + " " + mapElement.getValue()); 
} 
{childNodes=[{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob], 
tagName=jp06:url}, {childNodes=[https://rwb40004.str4.ceti.cjis:9443/jts/users/Bob], 
tagName=jp06:user-url}, 
{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments], 
tagName=jp06:role-assignments-url}, 
{childNodes=[{childNodes=[{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments/tester], 
tagName=jp06:url}, 
{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/tester], 
tagName=jp06:role-url}], 
tagName=jp06:role-assignment}, 
{childNodes=[{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments/default], 
tagName=jp06:url}, 
{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/default], 
tagName=jp06:role-url}], 
tagName=jp06:role-assignment}], 
tagName=jp06:role-assignments}, 
{childNodes=[https://[ip address]:9443/qm/_ajax-modules/com.ibm.team.process.manageProcessRolesAssignmentWidget?memberUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob&rolesUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles], 
tagName=jp06:role-assignments-editor-url}], 
tagName=jp06:member}childNodes [{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob], 
tagName=jp06:url}, 
{childNodes=[https://rwb40004.str4.ceti.cjis:9443/jts/users/Bob], 
tagName=jp06:user-url}, 
{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments], 
tagName=jp06:role-assignments-url}, {childNodes=[{childNodes=[{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments/tester], 
tagName=jp06:url}, 
{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/tester], 
tagName=jp06:role-url}], 
tagName=jp06:role-assignment}, 
{childNodes=[{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments/default], 
tagName=jp06:url}, 
{childNodes=[https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/default], 
tagName=jp06:role-url}], 
tagName=jp06:role-assignment}], 
tagName=jp06:role-assignments}, 
{childNodes=[https://[ip address]:9443/qm/_ajax-modules/com.ibm.team.process.manageProcessRolesAssignmentWidget?memberUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob&rolesUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles], 
tagName=jp06:role-assignments-editor-url}]
JSONObject jsonObject = JSONML.toJSONObject(theXMLReturnedResult);
JSONArray jsonArray = jsonObject.getJSONArray("childNodes");

jsonArray.forEach(o -> {
    if (o instanceof JSONObject) {
        JSONObject crt              = (JSONObject) o;
        JSONArray jsonArray1        = crt.getJSONArray("childNodes");
        JSONObject jsonObject2      = jsonArray1.getJSONObject(0);

        if (jsonObject2.has("childNodes")) {
            String url      = jsonObject2.get("childNodes").toString()
                                         .replace("[\"", "").replace("\"]", "")
                                         .trim();
            String[] name   = url.replace("[\"", "")
                                 .replace("\"]", "")
                                 .trim()
                                 .split("/");                   
            mapHash.put(name[8], url);
        }
    }
});