En utilisant SwiftyJSON
comment analyser le tableau JSON suivant dans un Swift [String]
?
{
"array": ["one", "two", "three"]
}
J'ai essayé ce code, mais cela ne fonctionne pas pour moi:
for (index: String, obj: JSON) in json["array"] {
println(obj.stringValue)
}
Quelle serait la meilleure façon de gérer cela? Merci.
{
"myArray": ["one", "two", "three"]
}
En utilisant SwiftyJSON, vous pouvez obtenir un tableau d'objets JSON avec:
var jsonArr:[JSON] = JSON["myArray"].arrayValue
La programmation fonctionnelle facilite ensuite la conversion en [String] à l'aide de la fonction 'map'. SwiftyJson vous permet de transtyper le type de chaîne avec l'indice ".string"
var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
SwiftyJSON vous permet d'extraire un String?
En utilisant $ 0.string ou un String
non optionnel en utilisant stringValue avec une valeur String vide par défaut si le type ne correspond pas.
Si vous voulez être sûr d'avoir un tableau de chaînes avec des faux non positifs, utilisez:
var stringArray = self.json["array"].array?.flatMap({ $0.string })
ou en Swift 4.1
var stringArray = self.json["array"].array?.compactMap({ $0.string })
Vous pouvez également remplacer self.json["array"].array
Par self.json["array"].arrayValue
Pour obtenir un résultat [String]
Au lieu de [String]?
.
Vous avez un Dictionary
qui contient un Array
qui contient String
s. Lorsque vous accédez à une valeur dans Dictionary
, elle renvoie un simple Array
de String
s. Vous l'itérez comme vous le feriez pour n'importe quel tableau.
for obj in json["array"] {
println(obj.stringValue)
}
Faites simplement ceci:
for stringInArray in json["array"]{
let value = stringInArray.1.stringValue
}