将 Map 值转换为 String
Convert a Map value to String
我正在尝试将地图值转换为 String
。
我尝试了 toString()
方法,但它仍然是 returns 一个 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=
根据 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
ResponseObject#getHeaderFields return将 Map
个 String
个键指向 List
个 String
个对象作为值。您只需要为键 x-message-id
获取 String
个对象的 List
,因为您希望它 return 一个结果,所以找到任何一个。
ResponseObject response = WS.sendRequest(findTestObject('api/test/TD-4_01_01-Valid'));
Map<String, List<String>> parsed = response.getHeaderFields();
List<String> messageIdList = parsed.get("x-message-id");
String messageId = messageIdList.stream().findAny().orElseThrow(IllegalStateException::new);
我正在尝试将地图值转换为 String
。
我尝试了 toString()
方法,但它仍然是 returns 一个 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=
根据 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
ResponseObject#getHeaderFields return将 Map
个 String
个键指向 List
个 String
个对象作为值。您只需要为键 x-message-id
获取 String
个对象的 List
,因为您希望它 return 一个结果,所以找到任何一个。
ResponseObject response = WS.sendRequest(findTestObject('api/test/TD-4_01_01-Valid'));
Map<String, List<String>> parsed = response.getHeaderFields();
List<String> messageIdList = parsed.get("x-message-id");
String messageId = messageIdList.stream().findAny().orElseThrow(IllegalStateException::new);