2017-10-29 7 views
0

の配列内のすべての値私は辞書の配列があります。SwiftyJSONプリント辞書

var dictArray = [[String:String]]() 

を私はいくつかの辞書を追加し、JSONへdictArrayを回す:

let json = JSON(dictArray) 

は、その後、私はトラブル実際にしようとしているが発生しましたこれらの値をこのループでJSON形式で出力します。

for (index,subJson):(String, JSON) in json { 
    print(index) 
} 

上記のループはSwiftyJSONのドキュメントですが、それは私のために働いていないようです。出力は次のようになります。

{ 
"dictArray": [ 
    { 
    "a": "a stuff 1", 
    "b": "b stuff 1", 
    "c": "c stuff 1", 
    "d": "d stuff 1" 
}, 
{ 
    "a": "a stuff 2", 
    "b": "b stuff 2", 
    "c": "c stuff 2", 
    "d": "d stuff 2" 
}, 
{ 
    "a": "a stuff 3", 
    "b": "b stuff 3", 
    "c": "c stuff 3", 
    "d": "d stuff 3" 
    } 
    ] 
} 

すべてのサポートをよろしくお願いします。

答えて

0

辞書を繰り返して印刷する必要はありません。あなたは、単にあなたがループ辞書をしたい場合、あなたはこのような何かを行くべきprint(json)

でそれを印刷することができます:

for dictionaries in json { 
    for (key, value) in dictionaries { 
     print("\(key): \(value)") 
    } 
} 
+1

次のエラーが発生しました: 'エラー:タイプ 'JSONenerator.Element'(別名 '(String、JSON)')がプロトコル 'シーケンス'およびタイプ 'JSONenerator.Element'(別名 'String、JSON')に準拠していませんプロトコル 'シーケンス'に準拠していません – evanhaus

0

あなたはこのように使用することができます。このコードは私を与える

var array = [String:[[String:String]]]() 

var dictArray = [[String:String]]() 

var stuffArray1 = [String: String]() 
stuffArray1["a"] = "a stuff 1" 
stuffArray1["b"] = "b stuff 1" 
stuffArray1["c"] = "c stuff 1" 
stuffArray1["d"] = "d stuff 1" 
dictArray.append(stuffArray1) 

var stuffArray2 = [String: String]() 
stuffArray2["a"] = "a stuff 2" 
stuffArray2["b"] = "b stuff 2" 
stuffArray2["c"] = "c stuff 2" 
stuffArray2["d"] = "d stuff 2" 
dictArray.append(stuffArray2) 

var stuffArray3 = [String: String]() 
stuffArray3["a"] = "a stuff 3" 
stuffArray3["b"] = "b stuff 3" 
stuffArray3["c"] = "c stuff 3" 
stuffArray3["d"] = "d stuff 3" 
dictArray.append(stuffArray3) 

array["dictArray"] = dictArray 

let json = JSON(array) 
print(json)