【发布时间】:2020-06-16 20:21:23
【问题描述】:
我正在尝试将地图值转换为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=
【问题讨论】:
-
能否打印
parsed.get('x-message-id').getClass()的结果 -
可能
x-message-id值是一个数组,结果是[]。 -
@KunLun 数组不会覆盖
toString方法,因此该方法将返回与 Object 相似的结果,即ArrayType@hexHash而不是[value0, value1, ..]。它可能是一些像 List 或 Set 这样的 Collection。 -
我说的是收藏。但感谢您纠正我。
-
response变量的类型是什么?是HttpURLConnection吗?如果是,那么它的.getHeaderFields()应该返回Map<String, List<String>>并且应该是parsed变量的类型(参见:What is a raw type and why shouldn't we use it?)。这将允许您使用parsed.get('x-message-id').get(0);。
标签: java groovy hashmap httpresponse katalon-studio