2017-06-16 5 views
-1

Ich möchte ein JSON-Array in ein String-Array konvertieren und dann das Array von Strings an ein Array von Strings anhängen. Der JSON-Array, mit denen ich zu tun ist folgender:JSON-Array an String-Array anhängen

let allPosts = JSON(value) 

//using SwiftyJSON to do something else 

// [["0","1","2","3"],["username1","username12","username123","username1234"]] 

Was ich bisher ausprobiert habe (ich benutze SwiftyJSON):

let postsIndec = allPosts[0].arrayValue 

//also tried: self.indec.append(contentsOf: postsIndec) //Xcode tells me to remove "contentsOf: " 

self.indec.append(postsIndec) // indec being: var indec = [String]() 

In der letzten Zeile ich den Fehler Cannot convert value of type '[JSON]' to expected argument type 'String' erhalten, die macht Sinn, aber einfach umwandeln es in eine Zeichenfolge wäre

Ich kann nicht durchlaufen eine vordefinierte Anzahl von Zeiten, da die Anzahl der Zeichenfolgen in einem Subarray größer oder kleiner als 4 sein kann (hier als Beispiel verwendet). Kannst du mir dabei helfen? Ich konnte keine Fragen finden, die das gleiche Problem beschreiben.

+0

es nicht wirklich klar von dem, was Sie tun wollen? ist, dass die Daten, die swiftJSON zurückgibt, '[[" 0 "," 1 "," 2 "," 3 "], [" Benutzername1 "," Benutzername12 "," Benutzername123 "," Benutzername1234 "]]' sind. Versuchen Sie, jedes Array in ein getrenntes Array zu extrahieren, zB 'array1 = [" 0 "," 1 "," 2 "," 3 "]' – Lamar

+0

'allPosts' ist ein JSON-Array mit Arrays und ich möchte das erste hinzufügen Array von 'allPosts' zu dem, was bereits im 'self.indec'-Array ist, das Strings enthält. @Lamar – Moritz

+0

Ich entferne meine Antwort, weil Ihr Kommentar immer noch nicht klar ist, wenn Sie sagen, dass es schon String ist, dann tun Sie 'postsIndec.map {indec.append ($ 0)}' – Lamar

Antwort

1

Versuchen Karte mit konvertieren [JSON] in [String]:

self.indec.append(contentsOf: postsIndec.map {$0.stringValue}) 
+0

Das verursacht einen ähnlichen Fehler:/...: ''map' erzeugt '[T]', nicht den erwarteten kontextabhängigen Ergebnistyp 'String'' – Moritz

+0

@Moritz hat die Antwort aktualisiert, um ein Array anstelle eines einzelnen Elements anzuhängen. – srvv

+0

Genau das, was ich gesucht habe! Ich danke dir sehr! – Moritz