2017-05-19 18 views
1

這是我的JSON數據,我怎樣才能在pickArray中獲得0的src數據?使用SwiftyJSON來獲取正確的數據

"pickArray" : "{\"0\":{\"src\":\"https:\/\/fb-s-d-a.akamaihd.net\/h-ak-xpl1\/v\/t1.0-9\/p720x720\/18010403_1525007564199498_8009700960533638318_n.png?oh=25dbc9c1522dcfdd1d15cdd3e8c0c7da&oe=59997685&__gda__=1502470695_f212ade003e9b1c4ddc6a3ab6cc9e7e7\",\"width\":720,\"height\":720}}" 

如果我不喜歡這樣寫道:

let dataArray = json["pickArray"] 
print("dataArray = ",dataArray) 

dataArray = {"0":{"src":"https://fb-s-d-a.akamaihd.net/h-ak-xpl1/v/t1.0-9/p720x720/18010403_1525007564199498_8009700960533638318_n.png?oh=25dbc9c1522dcfdd1d15cdd3e8c0c7da&oe=59997685&__gda__=1502470695_f212ade003e9b1c4ddc6a3ab6cc9e7e7","width":720,"height":720}} 

但是,如果我不喜歡這樣,顯示空:

let srcArray = dataArray["0"] 
print("srcArray = ",srcArray) 

我使用swift3.0

回答

0

它看起來就像是與關鍵pickArray您有因此獲得該字符串並將其轉換數據,並從中得到JSON,然後從它那裏得到srcStringJSON響應。

let stringResponse = json["pickArray"].stringValue 
if let data = stringResponse.data(using: .utf8) { 
    let pickArray = JSON(data: data) 
    //Now access the pickArray to get the src 
    var sortedKeys = [String]() 
    if let allKeys = pickArray.dictionaryObject { 
     sortedKeys = Array(allKeys.keys).sorted { $0.compare($1, options: .numeric) == .orderedAscending } 
    } 
    for key in sortedKeys { 
     print(pickArray[key]["src"].stringValue) 
     print(pickArray[key]["width"].intValue) 
     print(pickArray[key]["height"].intValue) 
    } 
} 
+0

你基本上是抄我的答案可選的值。 –

+0

@TristanBeaton當我評論這篇文章後,我沒有看到你的答案,當我發現這篇文章的答案在這裏,當去那篇文章我已經標記爲重複也你的答案和我的回答都是不同的,因爲你認爲整個JSON響應是字符串,並非如此 –

+0

@TristanBeaton此外,如果你認爲問題是重複標記爲重複,而不是再次張貼相同的答案 –

0
let srcArray = dataArray["0"].dictionaryObject! 
print("srcArray = \(srcArray)") 

現在您可以像下面那樣訪問「0」值的元素。希望爲你工作。

let jsonScr = JSON(srcArray) 
let srcURL = jsonScr["scr"].stringValue 
+0

它顯示了致命錯誤,意外地發現零而展開 – john

相關問題