繁体   English   中英

如何在放心的Java中从值中找到键?

[英]How to find key from value in rest assured java?

我正在使用放心的Java,并且正在使用发布请求以获取响应。 从我的代码中,我能够得到响应,并且我看到作为响应,我看到了要存储的值存在于键集中。 这是示例:

{
    "status_code": 200,
    "status_message": "OK",
    "response": {
        "applications": {
            "345": "A",
            "125": "B",
            "458": "C",
            "434": "D",
            "512": "E",
            "645": "F"
        }
    }
}

在上面的示例中,我使用Json路径来解析表达式,并且我想使用值“ A”从中提取键(“ 345”)。

JsonPath js = new JsonPath(res);
String Key  = js.get("response.applications.A");

当我使用上面的代码时,它将引发错误,但是当我运行下面的代码时。

JsonPath js = new JsonPath(res);
String Key  = js.get("response.applications.345");

我得到的输出为A。我知道什么是[A,b,c,d,e,f],但我不知道什么是[A,b,c,d,e,f]的键

有什么办法可以存储值并以放心或其他任何方式在Java中打印该值的密钥????

使用JsonPath ,可以通过调用getMap获得密钥。 这是您将如何执行此操作的示例:

String jsonString = "{\"status_code\": 200,\"status_message\": \"OK\",\"response\":{\"applications\":{\"345\": \"A\",\"125\": \"B\",\"458\": \"C\",\"434\": \"D\",\"512\": \"E\",\"645\": \"F\"}}}";
JsonPath jsonPath = new JsonPath(jsonString);
Map<String, String> applicationsMap = jsonPath.getMap("response.applications");
Set<String> applicationKeys = applicationsMap.keySet();
for(String key:applicationKeys){
    System.out.println("Key value: " + key + ", Element value: " + applicationsMap.get(key));
}

希望这可以帮助!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM