2016-07-25 22 views
2

私はこの質問があまりにも馬鹿に聞こえるなら、親切にも私を言い訳します。 私は角括弧( "[]")ではなく、各エンティティの後に波括弧( "{}")が必要なディクショナリ配列出力からJSONオブジェクトを作成しようとしています。私のコードは以下の通りです。これに辞書の出力から角括弧を削除して中括弧で置き換えるにはどうすればよいですか?

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) 

出力は次のようになります - [[ "文字列2": "世界"、 "文字列1": "こんにちは"]、[ "文字列2": "世界"、 "文字列1": "こんにちは" ] \ nは私はそれを必要とするが

として: - [{ "文字列2": "世界"、 "文字列1": "こんにちは"}、{ "文字列2": "世界"、 "文字列1": "こんにちは "}] \ n

私はこれを行う1つの方法は、フィルター配列を使用することですが、私はSwift上のさまざまな文書を検索した後に見つけることができない簡単な方法があると思われる。これで私を助けてください。前もって感謝します。これはスウィフト辞書のスウィフト配列であるため

+2

JSONが必要ですか?次に、 'NSJSONSerialization'を使用することができます。 – Larme

+1

はい、あなたは正しいです。私はこれを試して、それは動作しているようだ。ありがとう!:) – Skullbash

答えて

2

出力

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

あります。

を解析して、文字を自分で交換しないでください、JSONへのこのオブジェクトを変換するには、代わりにNSJSONSerializationを使用します。

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

プリント:

[{ "文字列2": "世界"、」文字列1 ":" こんにちは "}、{" 文字列2 ":" 世界」、 "文字列1": "こんにちは"}]

我々はJSON ダにごスウィフトオブジェクトを変換するためにdataWithJSONObjectを使用taの場合、String(data:, encoding:)を使用して、このJSONデータをJSON 文字列に変換します。

+0

素早い応答ありがとう!私はちょうどこれを試して、それが働いた:) – Skullbash

+0

あなたは大歓迎です。 :) – Moritz

関連する問題