Как уже упоминалось в комментариях, не используйте JSONSerialization
, используйте Decodable
.
Там довольно просто перевести "0"
в допустимое имя члена структуры с помощью CodingKeys
struct Root: Decodable {
let zero: Product
private enum CodingKeys : String, CodingKey { case zero = "0" }
}
struct Product: Decodable {
let price, productname : String
}
...
let jsonString = """
{"0":{"price":"4.77","productname":"KISSES Giant Milk Chocolate Candy, 7 oz"}}
"""
let data = Data(jsonString.utf8)
do {
let result = try JSONDecoder().decode(Root.self, from: data)
print(result.zero.productname)
} catch { print(error) }