Ich verwende derzeit eine Kotlin-Funktion, um eine Karte aus einer Json-Struktur mit Schlüssel-Wert-Paare zu extrahieren.Ersetzen Strom in Kotlin native Lösung sammeln
Die JSON verwendet, um die Karte zu bauen, ist enthält ein Label und ein Wert:
"values": [
{
"label": "Email",
"value": "email"
},
{
"label": "Social media",
"value": "socialMedia"
},
{
"label": "Word of mouth",
"value": "wordOfMouth"
},
{
"label": "Newspaper",
"value": "newspaper"
}
],
Die JSON „label“ sollte der Schlüssel der Karte und den „Wert“ sein Wert werden.
Dies ist der Code zum Extrahieren und Konvertieren des JSON in eine Map mit der Stream-Collect-Methode von Java 8.
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 -> })
}
Wie schreibe ich den Teil mit stream(). In idiomatic Kotlin sammeln? Welche Alternativen haben Sie
Strom(). Sammeln()
in diesem speziellen Fall zu ersetzen?
Ja, das ist, was ich wollte. Ich habe es auch überprüft und * toMap() * funktioniert gut. –