/ / Jak usunąć nawiasy kwadratowe ze słownika i zastąpić nawiasami klamrowymi? - ios, swift, swift2

Jak usunąć nawiasy kwadratowe ze słownika i zastąpić nawiasami klamrowymi? - ios, swift, swift2

Jestem nowicjuszem w Swift, więc uprzejmie przepraszam, jeślito pytanie brzmi zbyt głupio. Próbuję utworzyć obiekt JSON z wyjścia Array słownik, który musi mieć nawiasów klamrowych ("{}") po każdym obiekcie zamiast nawiasów kwadratowych ("[]"). Mój kod podano poniżej.

import UIKit

var locations = Array<Dictionary<String, String>>()

var myLocations = ["pqr","xyz"]

myLocations.forEach {_ in
var dictionary = Dictionary<String, String>()
dictionary["string1"] = "hello"
dictionary["string2"] = "world"
locations.append(dictionary)

}
print(locations)

Dane wyjściowe do tego są: - [["string2": "świat", "ciąg1": "cześć"], ["ciąg2": "świat", "ciąg1": "cześć"]] n

Jednak wymagam tego jako: - [{"string2": "world", "string1": "hello"}, {"string2": "world", "string1": "hello"}] n

Wiem, że jednym ze sposobów na to jest użycie filtraTablice, ale podejrzewam, że może być łatwiejszy sposób na to, czego nie jestem w stanie znaleźć po przejrzeniu różnych dokumentacji na temat Swift. Czy możesz mi pomóc z tym. Z góry dziękuję.

Odpowiedzi:

2 dla odpowiedzi № 1

Wyjście to

[["string2": "world", "string1": "hello"], ["string2": "world", "string1": "hello"]]

ponieważ jest to tablica Swift ze słownikami Swift.

Aby przekonwertować ten obiekt na JSON, nie parsuj i nie zastępuj znaków samodzielnie, zamiast tego użyj NSJSONSerialization:

do {
let jsonData = try NSJSONSerialization.dataWithJSONObject(locations, options: [])
if let jsonString = String(data: jsonData, encoding: NSUTF8StringEncoding) {
print(jsonString)
}
} catch {
print(error)
}

Wydruki:

[{"string2": "world", "string1": "hello"}, {"string2": "world", "string1": "hello"}]

Używamy dataWithJSONObject do zamiany twojego obiektu Swift na JSON dane, a następnie używamy String(data:, encoding:) do konwersji tych danych JSON do JSON strunowy.