我正在尝试将映射值转换为String
。
我尝试了toString()
方法,但它仍然返回Object
而不是String
response = WS.sendRequest(findTestObject('api/test/TD-4_01_01-Valid'))
Map parsed = response.getHeaderFields()
String messageId = parsed.get('x-message-id').toString();
println messageId
实际输出:
[C5yZC5hcy5sb2NhbC0xMjgyNi05MzE1LTE=]
预期输出:
C5yZC5hcy5sb2NhbC0xMjgyNi05MzE1LTE=
答案 0 :(得分:4)
根据API,Map
是Map<String, List<String>>
映射。这就是为什么要用方括号[]
包装。
如果要访问此列表中的第一个元素,则应调用parsed.get('x-message-id').get(0)
来访问索引为0的元素。
这是完整的解决方案:
response = WS.sendRequest(findTestObject('api/test/TD-4_01_01-Valid'))
Map parsed = response.getHeaderFields()
String messageId = parsed.get('x-message-id').get(0);
println messageId
答案 1 :(得分:3)
ResponseObject#getHeaderFields将Map
个键的一个String
返回到List
个对象的String
个对象,作为值。您只需要获取键List
的{{1}}个对象中的String
个,并且由于您希望它返回单个结果,因此可以找到任何结果。
x-message-id