2017-05-20 1 views
0

私はjsonデータを持っています。私は以前はSwiftyJSONを使っていません。私は初めての試みです。このようなSwiftを使用した部分配列にSwiftyJSONを使用する3.1

私のJSONは:

[ 
{ 
    "Id": 1, 
    "Name": "A", 
    "SubNames": [ 
    { 
    "SubId": 1, 
    "SubName": "A1" 
    }, 
    { 
    "SubId": 2, 
    "SubName": "A2" 
    }] 
}, 
{ 
    "Id": 2, 
    "Name": "B", 
    "SubNames": [ 
    { 
    "SubId": 1, 
    "SubName": "B1" 
    }, 
    { 
    "SubId": 2, 
    "SubName": "B2" 
    }] 
} 
] 

私が名前を処理し、配列を付加することができます。しかし、私はSubNamesを扱うことができません。私は何かを試みたが残念ながら働かない。 SubNamesに配列を追加したい。この配列は、このようになります:

[["A1","A2"],["B1","B2"]] 

私はこのコードを使用:

let json = JSON(data: data!) 
for (_,subJson):(String, JSON) in json {     
self.names.append(subJson["Name"].stringValue 
} 
+1

swiftyjsonを使用してこのjson構造用に用意したモデルを表示します。 –

+0

@AnilKumar私は自分の質問を編集しました。これで十分ですか?ありがとうございました。 – Mayday

+0

@AnilKumar申し訳ありませんが、少し説明できますか? – Mayday

答えて

0

これらのフィールドにアクセスするためにこれを試して、あなたがここに

guard let `data` = data else { 
    //no data handling 
    return 
} 
let dataArray = JSON(data: data).arrayValue 
var arrayOfAllSubnames: [[String]] = [[]] 

for object in dataArray { 
    var arrayOfSubnames: [String] = [] 
    if let subnames = object["SubNames"].array { 
     for subname in subnames { 
      //here you get `"SubId": 2, "SubName": "B2"` object 
      let subnameValue = subname["SubName"].stringValue 
      arrayOfSubnames.append(subnameValue) 
     } 
    } 
    arrayOfAllSubnames.append(arrayOfSubnames) 
} 
+0

ありがとうございます。しかし、私の問題は次のように配列SubNameに集められます。[["A1"、 "A2"]、 "" B1 "、" B2 "] – Mayday

+0

@Mayday編集の回答 – JuicyFruit

0

スウィフトをdata!を行うべきではありません3.0

1)最初にサブネーム配列を宣言します。

var subNameArray: [[String]] = [] 

2)このオブジェクトには、次のようにアクセスして保存することができます。

let json = JSON(data: data!).arrayValue 

for item in json { 

    var tempArray: [String] = [] 

    let name = item["Name"].stringValue 

    for subNameItem in items["SubNames"].arrayValue { 
    tempArray.append(subNameItem["SubName"].stringValue) 
    } 
    subNameArray.append(tempArray) 
} 
+0

ありがとうございます。私は彼を受け入れます、申し訳ありません。 – Mayday

+0

問題はありません、あなたにはあなたの最終回答があります。疑問を持ち続ける – Jaydeep

関連する問題