嘿,我正在尝试从 JSON 字符串中获取所需的信息。
这就是我的 JSON 的样子:
{
"xmlns:jp": "http://jazz.net/xmlns/prod/jazz/process/1.0/",
"childNodes": [{
"childNodes": [{
"childNodes": ["https://zzzz.zzzz.zxzzxzxz:9443/qm/process/project-areas/_rutR33fwEee_eeo4ry7Vg/members/bob"],
"tagName": "jp06:url"
}, {
"childNodes": ["https://zzzz.zzzz.zxzzxzxz:9443/jts/users/bob"],
"tagName": "jp06:user-url"
}, {...etc.....
这是我的java代码:
JSONObject jsonObject = JSONML.toJSONObject(theReturnedResult);
JSONArray jsonArray1 = jsonObject.getJSONArray("childNodes");
JSONObject device = jsonArray1.getJSONObject(0);
JSONArray vendors = device.getJSONArray("childNodes");
List<String> result = new ArrayList<>();
vendors.forEach(o -> {
if (o instanceof JSONObject) {
JSONObject crt = (JSONObject) o;
String blah = crt.getString("tagName");
System.out.println(crt.getString("tagName"));
if (blah.equals("jp06:role-assignments-url")) {
String blah1 = crt.getString("tagName");
mapHash.put(owner, crt.getString("childNodes"));
} else if (crt.has("ns6:owner")) {
//See who's the owner of this TSR
owner = crt.getString("childNodes");
}
}
});
String blah1 = crt.getString("tagName"); 返回第二个 tagName 但当它进入 if/than 时我似乎找不到这是因为它告诉我 JSONObject["childNodes"] 不是字符串。
我正在尝试获取分配给childNodes 的URL 值。所以我不确定第一个 String blah = crt.getString("tagName") 是如何工作的,但是当我在 if/else 语句中尝试另一个 String blah = crt.getString("tagName") 时,它不会返回 url - 只有下面的错误?
我正在尝试获取值"https://zzzz.zzzz.zxzzxzxz:9443/qm/process/project-areas/_rutR33fwEee_eeo4ry7Vg/members/bob 。
帮助会很棒!
最佳答案
这个错误是正确的,不是吗? childNodes
不是一个 String
而是一个包含单个字符串的数组。所以应该是:
mapHash.put(owner, crt.getJSONArray("childNodes").getString(0));
关于java/JSON 未显示解析 JSON 所需的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60741942/