2017-07-11 7 views
1

を解析することができません、私はJSONオブジェクトを解析しようとするとJSONオブジェクトのiOSスウィフト

let json = try? JSONSerialization.jsonObject(with: reportData, options: []) as? [String : Any] 

私は

はタイプの引数リストで「jsonObject」を呼び出すことはできませんというエラーを取得します 'で:([文字列:任意])、オプション:[任意]'

ここで得られた、JSON形式で私のreportDataありますサーバーから

{ 
    "status": "success", 
    "statusCode": 200, 
    "message": "Report exists", 
    "patientReport": { 
     "caseId": "case040784", 
     "Observations": "These are test observations", 
     "userUid": "MY5FDbl0bgZStAY5Ky6OtYAzbDT2", 
     "nextSteps": "Here are my next steps", 
     "customerUid": "customerUid", 
     "results": { 
      "test1": "12", 
      "test3": "15", 
      "test3": "12" 
     } 
    } 
} 

私が間違っているところを教えてください。

+1

あなたの 'jsonData'はすでに' [String:Any] 'のSwift Dictionaryです。 _parse_する必要はありません。 Swift Dictionaryとして使ってください。 – OOPer

答えて

2

この機能:

jsonObject(with: Data, options: JSONSerialization.ReadingOptions = [])

はタイプDataJSONSerialization.ReadingOptionsとの2つのパラメータが必要です。

reportDataDictionaryであり、Dataではありません。だから、あなたはDictionaryを解析することなくそれを使うことができます。

0

Cannot invoke 'jsonObject' with an argument list of type 'with:([String:Any]), options:[Any]'

私はこれは私が今日見てきた奇妙なことかもしれないと思います。

このメッセージをそのまま読むと、reportDataは、([String: Any]) -Aのタプルで、単一の値[String: Any]が含まれています。

Creating Tuples For a Single Valueを読んだ後、([String: Any])[String: Any]の間に違いはないことがわかります。

他のユーザーは既にそれに答えています...すでに辞書オブジェクトを解析する必要はありません。私はちょうどそのタプルのものがintrestingであることを発見しました。

関連する問題