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



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

JSONObject jsonObjectXML = JSONML.toJSONObject(theXMLReturnedResult);

<?xml version="1.0" encoding="UTF-8"?><jp06:members xmlns:jp06="http://jazz.net/xmlns/prod/jazz/process/0.6/" xmlns:jp="http://jazz.net/xmlns/prod/jazz/process/1.0/" jp:total-members="68">
<jp06:member>
<jp06:url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob</jp06:url>
<jp06:user-url>https://[ip address]:9443/jts/users/Bob</jp06:user-url>
<jp06:role-assignments-url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments</jp06:role-assignments-url>
<jp06:role-assignments>
<jp06:role-assignment>
<jp06:url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments/tester</jp06:url>
<jp06:role-url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/tester</jp06:role-url>
</jp06:role-assignment>
<jp06:role-assignment>
<jp06:url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob/role-assignments/default</jp06:url>
<jp06:role-url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/default</jp06:role-url>
</jp06:role-assignment>
</jp06:role-assignments>
<jp06:role-assignments-editor-url>https://[ip address]:9443/qm/_ajax-modules/com.ibm.team.process.manageProcessRolesAssignmentWidget?memberUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Bob&amp;rolesUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles</jp06:role-assignments-editor-url>
</jp06:member>
<jp06:member>
<jp06:url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Ashley</jp06:url>
<jp06:user-url>https://[ip address]:9443/jts/users/Ashley</jp06:user-url>
<jp06:role-assignments-url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Ashley/role-assignments</jp06:role-assignments-url>
<jp06:role-assignments>
<jp06:role-assignment>
<jp06:url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Ashley/role-assignments/tester</jp06:url>
<jp06:role-url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/tester</jp06:role-url>
</jp06:role-assignment>
<jp06:role-assignment>
<jp06:url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Ashley/role-assignments/default</jp06:url>
<jp06:role-url>https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles/default</jp06:role-url>
</jp06:role-assignment>
</jp06:role-assignments>
<jp06:role-assignments-editor-url>https://[ip address]:9443/qm/_ajax-modules/com.ibm.team.process.manageProcessRolesAssignmentWidget?memberUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/members/Ashley&amp;rolesUrl=https://[ip address]:9443/qm/process/project-areas/eeoO8nJ4Vg/roles</jp06:role-assignments-editor-url>
</jp06:member>
<jp06:member>
ETC.......

这是json-structor:

{
"xmlns:jp": "http://jazz.net/xmlns/prod/jazz/process/1.0/",
"childNodes": [{
"childNodes": [{
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Bob"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://[ip address]:9443/jts/users/Bob"],
"tagName": "jp06:user-url"
}, {
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Bob/role-assignments"],
"tagName": "jp06:role-assignments-url"
}, {
"childNodes": [{
"childNodes": [{
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Bob/role-assignments/tester"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/roles/tester"],
"tagName": "jp06:role-url"
}
],
"tagName": "jp06:role-assignment"
}, {
"childNodes": [{
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Bob/role-assignments/default"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/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/eeoOInJ4V6/members/Bob&rolesUrl=https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/roles"],
"tagName": "jp06:role-assignments-editor-url"
}
],
"tagName": "jp06:member"
}, {
"childNodes": [{
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Ashley"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://[ip address]:9443/jts/users/Ashley"],
"tagName": "jp06:user-url"
}, {
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Ashley/role-assignments"],
"tagName": "jp06:role-assignments-url"
}, {
"childNodes": [{
"childNodes": [{
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Ashley/role-assignments/tester"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/roles/tester"],
"tagName": "jp06:role-url"
}
],
"tagName": "jp06:role-assignment"
}, {
"childNodes": [{
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/members/Ashley/role-assignments/default"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/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/eeoOInJ4V6/members/Ashley&rolesUrl=https://[ip address]:9443/qm/process/project-areas/eeoOInJ4V6/roles"],
"tagName": "jp06:role-assignments-editor-url"
}
],
"tagName": "jp06:member"
}, {
ETC......

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

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()); 
} 

您的HashMap:的值

{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}]

从那时起,它就一直重复着和以前一样的台词。

这太疯狂了-我不知道如何处理每一个单个子节点,这样它就可以不断循环以获取其他人但也可以在单个子节点agName=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);
}
}
});

相关内容

最新更新