2016-12-22 14 views
0

jsonファイルをダウンロードするためのデータ・タスクを作成しました。 jsonは辞書の配列です。これは、データのサンプルです:jsonデータを[String:Any]としてキャストする際にエラーが発生しました。

[ 
    { 
    "userName": "Elon Musk", 
    "comment": "This is a fantastic Beer. I highly recommend it!" 
    }, 
    { 
    "userName": "SuperUser Account", 
    "comment": "I agree with Elon.. It rocks!" 
    } 
] 

問題は、私が[String: Any]としてJSONをキャストすることはできませんです。私はそれを[Any]にキャストするだけです。ここに関連するコードは次のとおりです。

guard let json = try JSONSerialization.jsonObject(with: responseData, options: []) as? [String: Any] else { 
     print("error trying to convert data to JSON") 
     return 
    } 
    // now we have the json, let's just print it to prove we can access it 
    print("The json is: " + json.description) 

キャスト[Any]としてJSONプリント罰金。他に何か、キャストは失敗しますか?

お願いします。 http://www.smarttapp.com/DesktopModules/DnnSharp/DnnApiEndpoint/Api.ashx?method=GetCommentsFromArticleID&articleID=2240

+0

にキャストし、それは辞書の配列だではなく、辞書:

編集。これは、URLであります。したがって、それを辞書にキャストすることはできません。代わりに '[[String:Any]]'にキャストすることを意味しましたか? – Hamish

+0

OMG!私はそれを逃したとは信じられない!私は今夜​​寝ることができるよ!ありがとうございました! –

答えて

1

あなたのJSON arrayが辞書ではない..あなたは自分自身を言っただけ[[String:Any]]

guard let json = try JSONSerialization.jsonObject(with: responseData, options: []) as? [[String: Any]] else { 
     print("error trying to convert data to JSON") 
     return 
    } 

    for dict in json { 
     print(dict["userName"]) 
    } 
+0

誰かが、コードを正しくインデントしなかったために3つの票を得た理由を説明できますか? –

関連する問題