Wie zu analysieren und extrahieren von Informationen aus dem json-array mit json4s
Ich bin versucht derzeit, das extrahieren der Informationen aus einem json-array mit json4s (scala).
Beispiel-Daten wie folgt:
val json = """
[
{"name": "Foo", "emails": ["[email protected]", "[email protected]"]},
{"name": "Bar", "emails": ["[email protected]", "[email protected]"]}
]
"""
Und mein code ist wie folgt:
case class User(name: String, emails: List[String])
case class UserList(users: List[User]) {
override def toString(): String = {
this.users.foldLeft("")((a, b) => a + b.toString)
}
}
val obj = parse(json).extract[UserList]
printf("type: %s\n", obj.getClass)
printf("users: %s\n", obj.users.toString)
Wird der Ausgang out zu sein:
type: class UserList
users: List()
Scheint es, dass die Daten nicht korrekt abgerufen. Gibt es irgendein problem mit meinem code?
UPDATE:
Es funktioniert nach dem Vorschlag von @Kulu Limpa.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ihr code korrekt ist, außer, dass deine JSON ist einfach ein array, also eine
List[User]
. Es gibt zwei Möglichkeiten, um dieses Problem zu lösen, mit einem etwas anderen Ergebnis:Lösung 1: Fixieren Sie Ihre json zu
Solution2: Ändern Sie den Typ-parameter zu extrahieren, um