请检查此代码示例。
HttpEntity getResponseEntity = getResponse.getEntity();
String message = EntityUtils.toString(getResponseEntity,"UTF-8");
//message = {"EntryPointJsonResult":"{\"NextTransactionUrl\":null,\"TraceId\":null,\"IsAuthorizationRequired\":false,\"IsError\":false,\"ErrorCode\":null,\"ErrorMessage\":null}"}
JSONObject object = new JSONObject(message);
String objectString = object.getString("EntryPointJsonResult");
//objectString = {\"NextTransactionUrl\":null,\"TraceId\":null,\"IsAuthorizationRequired\":false,\"IsError\":false,\"ErrorCode\":null,\"ErrorMessage\":null}
这就是问题:我希望得到没有“EntryPointJsonResult”的“objectString”。导致此信息在另一个响应中有所不同。
那么如何在没有像“EntryPointJsonResult”这样的特定键的情况下获取“objectString”
答案 0 :(得分:24)
您可以在不知道密钥
的情况下获取这样的json对象的值Iterator<String> keys= object.keys();
while (keys.hasNext())
{
String keyValue = (String)keys.next();
String valueString = object.getString(keyValue);
}
答案 1 :(得分:3)
这应该有用。
JSONObject object = new JSONObject(message);
String objectString = object.getString(object.names().get(0));
但只有在您确定存在NextTransactionUrl
节点时它才会起作用。顺便说一句,在这种情况下,这个节点可以有另一个名称,它仍然可以工作。