我目前使用Kotlin函數從鍵值對中提取Json結構以外的映射。替換Kotlin本地解決方案中的流收集
的JSON用於構建地圖是包含一個標籤和值:
"values": [
{
"label": "Email",
"value": "email"
},
{
"label": "Social media",
"value": "socialMedia"
},
{
"label": "Word of mouth",
"value": "wordOfMouth"
},
{
"label": "Newspaper",
"value": "newspaper"
}
],
的JSON「標籤」應該成爲地圖和「價值」,其價值的關鍵。
這是用於使用Java 8的流收集方法提取JSON並將其轉換爲地圖的代碼。
fun extractValue(jsonNode: JsonNode?): Map<String, String> {
val valuesNode = jsonNode?.get("values") ?: mapper.createArrayNode()
return valuesNode.map { Pair(it.get("label")?.asText() ?: "", it.get("value")?.asText() ?: "") }
.stream().collect({ HashMap<String, String>()}, { m, p -> m.put(p.first, p.second) } , { m, p -> })
}
如何使用stream()函數編寫零件?在地道的Kotlin中收集?你有什麼替代方案,以取代
流()。收集()
在這種特殊情況下?
是的,這是我想要的。我也檢查它和* toMap()*正常工作。 –