SwiftyJSON
を使用して、次のJSON配列をどのように解析してSwift [String]
?
{
"array": ["one", "two", "three"]
}
このコードを試しましたが、うまくいきません。
for (index: String, obj: JSON) in json["array"] {
println(obj.stringValue)
}
これを処理する最良の方法は何でしょうか?ありがとうございました。
{
"myArray": ["one", "two", "three"]
}
SwiftyJSONを使用すると、次のものでJSONオブジェクトの配列を取得できます。
var jsonArr:[JSON] = JSON["myArray"].arrayValue
関数型プログラミングにより、 'map'関数を使用して[String]に簡単に変換できます。 SwiftyJsonでは、添え字 '.string'を使用して文字列型をキャストできます
var stringArr:[String] = JSON["myArray"].arrayValue.map { $0.stringValue}
SwiftyJSONを使用すると、タイプが一致しない場合、$ 0.stringを使用して_String?
_を抽出し、stringValueを使用してデフォルトの空のストリング値を使用してオプションではないString
を抽出できます。
誤検出のない文字列の配列を確保したい場合は、次を使用します。
var stringArray = self.json["array"].array?.flatMap({ $0.string })
またはSwift 4.1
var stringArray = self.json["array"].array?.compactMap({ $0.string })
_self.json["array"].array
_を_self.json["array"].arrayValue
_に置き換えて、_[String]
_の代わりに_[String]?
_の結果にすることもできます。
Dictionary
を保持するArray
を保持するString
があります。 Dictionary
の値にアクセスすると、Array
sの単純なString
が返されます。配列と同じように繰り返します。
for obj in json["array"] {
println(obj.stringValue)
}
これを行うだけです:
for stringInArray in json["array"]{
let value = stringInArray.1.stringValue
}