6

次の JSON を解析しようとしています。

{ 
  "String For Key 1": [
    "Some String A",
    "Some String B",
    "Some String C",
  ],
  "String For Key 2": [
    "Some String D",
    "Some String E",
    "Some String F"
  ],
  "String For Key 3": [
    "Some String G",
    "Some String H",
    "Some String I",
  ],
  "String For Key 4": [
    "Some String J",
    "Some String K",
    "Some String L"
  ],
  "String For Key 5": [
    "Some String M",
    "Some String N",
    "Some String O"
  ],
  "String For Key 6": [
    "Some String P",
    "Some String Q",
    "Some String R"
  ]
}

私もこのチュートリアルに従っています。Playground の Github にあります

Arrayこの例では、次を使用して一連の辞書を解析しています。typealias JSONDictionary = [String: AnyObject]

を解析する必要がDictionaryあり、KeyこれはStringであり、ValueそれはArrayです。したがってtypealias JSONDictionary = [String: [AnyObject]]、 を返すときにエラーが発生しますflatMap

extension Resource {
    init(url: NSURL, parseJSON: AnyObject -> A?) {
        self.url = url
        self.parse = { data in
            let json = try? NSJSONSerialization.JSONObjectWithData(data, options: []) as? [String: [AnyObject]]
           //This is where I get an error
            return json.flatMap(parseJSON)
        }
    }
}

エラー:

Cannot convert value of type `AnyObject -> A? to expected argument type `([String: [AnyObject]]?) -> _?

KeysasStringValuesasで辞書を取得するにはどうすればよいArrayですか? Generic私は彼らのアプローチ を維持したいと思います。

4

1 に答える 1