2017-06-16 16 views
-1

JSON配列を文字列配列に変換し、文字列配列に文字列配列を追加したいと思います。私が扱っていますJSON配列は以下の通りです:JSON配列を文字列配列に追加する

let allPosts = JSON(value) 

//using SwiftyJSON to do something else 

// [["0","1","2","3"],["username1","username12","username123","username1234"]] 
私がこれまで試したどのような

(私はSwiftyJSONを使用しています):私が作るエラーCannot convert value of type '[JSON]' to expected argument type 'String'を得る最後の行で

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]() 

(しかしここでは例として使用されている)サブアレイ内の文字列の数が4より大きい場合もあれば、小さい場合もあるので、あらかじめ定義された回数ループすることはできません。これで私を助けることができますか?私は同じ問題を説明する質問を見つけることができませんでした。

+0

それはあなたがしようとしているかの本当に明確ではないでしょうか? swiftJSONが '[[" 0 "、" 1 "、" 2 "、" 3 "]、[username1"、 "username12"、 "username123"、 "username1234"]] 'を返すデータです。 'array1 = [" 0 "、" 1 "、" 2 "、" 3 "]' – Lamar

+0

'allPosts'は配列を含むJSON配列で、最初に追加したいのですが'allPosts'の配列を、文字列を含む' self.indec'配列に既にあるものに置き換えます。 @Lamar – Moritz

+0

私はあなたのコメントがまだ文字列であると言うなら、あなたのコメントがまだ明確でないので私の答えを削除します 'postsIndec.map {indec.append($ 0)}' – Lamar

答えて

1

[文字列]に[JSON]変換するためのマップを使用してみてください:

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

これは同様のエラーを引き起こします:/ ...: '' map 'は予想される文脈の結果の型ではなく' [T] 'を生成します'String'' – Moritz

+0

@Moritzは、単一要素の代わりに配列を追加する答えを更新しました。 – srvv

+0

これはまさに私が探していたものです!どうもありがとうございます! – Moritz

関連する問題