2016-12-05 7 views
0

すでにこれについて話している投稿がありますが、まだ私の問題を把握することはできません。スウィフトの入れ子になったJSONと

私は自分のデータベースにアクセスしており、その応答をJSONオブジェクトに変換しています。その部分はうまくいきます。ここにそのコードがあります。現在joArrayに必要なデータがあります。

//Convert data to json object 
let joArray : NSArray 
do { 
    joArray = try JSONSerialization.jsonObject(with: data, options: []) as! NSArray 
} 
catch { 
    print(responseString) 
    print("error trying to convert data to JSON") 
    return 
} 

もし私がjoArrayを印刷するとしたら、 。 。

print(joArray) 

。 。 。これは私が得るものです。

(
     { 
     FirstName = Bob; 
    }, 
     { 
     FirstName = Bill; 
    } 
) 

このデータをどのように表示すると、このように見えるのですか?

let FirstNameArray = ["Bob", "Bill"] 

FirstNameは常に同じ位置にありますが、さまざまな数のユーザー(Bob、Bill、Maryなど)が存在します。

+1

正確なJSONを知らなくてもジャグをするのは難しいです。あなたのプリントアウトは、ほんの一部に似ています。あなたは辞書の配列を取得します。配列を希望のフォーマットに ''(フラット)マッピングする必要があります。サイドノート:** SwiftでNSArrayを使用しないでください。あなたは重要なタイプの情報を捨てて、強いタイプのシステムを倒す。ネイティブ '配列'を使用する – vadian

答えて

2

ネイティブSwift配列を代わりに使用すると、自分で楽になります。だから、あなたの配列定義を変更することで起動します。

let joArray: [[String: Any]] 
do { 
    joArray = try JSONSerialization.jsonObject(with: data, options: []) as! [[String: Any]] 
} catch { 
    // etc... 
} 

は今、それが必要な配列を構築するために簡単です:

let FirstNameArray = swiftArray.flatMap { $0["FirstName"] } 

与えられた配列項目が持っていない可能性がありますので、あなたは、むしろmapより、flatMapを使用する必要があります"FirstName"というプロパティ。

関連する問題