Значение, связанное с ключом entry
, является просто массивом с одним элементом.В этом случае вы можете получить доступ к json["entry"]
, привести его к [[String: Any]]
и получить доступ к первому элементу [0]
.Затем вы можете получить доступ к вещам, которые вы хотите, например, displayName
и id
.
. Лучший способ сделать это - использовать Codable
.Используя QuickType , я сгенерировал этот код:
struct Root: Codable {
let entry: [Entry]
}
struct Entry: Codable {
let id, hash, requestHash: String
let profileURL: URL
let preferredUsername: String
let thumbnailURL: URL
let photos: [Photo]
let displayName: String
enum CodingKeys: String, CodingKey {
case id, hash, requestHash
case profileURL = "profileUrl"
case preferredUsername
case thumbnailURL = "thumbnailUrl"
case photos, displayName
}
}
struct Photo: Codable {
let value: URL
let type: String
}
Затем вы можете сделать это для анализа json:
let decoder = JSONDecoder()
let root = try decoder.decode(Root.self, from: data)
// e.g.
let displayName = root.entry[0].displayName
Если вам не нужно ничего изjson KVP, просто удалите его из структуры.