我正在尝试将映射值转换为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=
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
response.getHeaderFields
类型为Map<String, List<String>>
因此,您使用
String messageId = parsed.get('x-message-id')[0]