对象名称为数字时如何解析JSON?
How to Parse JSON when the object name is a number?
我一直在尝试解析从浏览器获得的 JSON 数据,但是,我 运行 遇到了问题。在浏览器中,当我复制 属性: bedrooms 的路径时,这是我得到的路径:
- 0.bedrooms
0 是对象的名称,卧室在该对象下列为 属性。当我尝试创建名称为 0 的变量时,Swift 不允许,没有这个变量,我无法匹配路径。
以下是我针对结构形式的不同对象的代码:
struct HomeData: Codable{
let 0: Object0 <--------This line does not work
}
struct Object0: Codable{
let bathrooms: Double
let bedrooms: Double
let price: Int
let rawAdress: String
let squareFootage: Int
let propertyType: String
}
这是解析 JSON:
的代码
func parseJSON(homeData: Data){
let decoder = JSONDecoder()
do{
let decodedData = try decoder.decode(HomeData.self, from: homeData)
print(decodedData.0.bathrooms) <---This line gives an error as well
}catch{
print(error)
}
}
如何解析这些数据?任何帮助将不胜感激!
此外,这是数据。 Data
根据您的屏幕截图,根对象是一个数组
struct HomeData: Decodable {
let bathrooms: Double
let bedrooms: Double
let price: Int
let rawAddress: String
let squareFootage: Int
let propertyType: String
}
func parseJSON(homeData: Data){
let decoder = JSONDecoder()
do{
let decodedData = try decoder.decode([HomeData].self, from: homeData)
print(decodedData.first?.bathrooms
}catch{
print(error)
}
}
我一直在尝试解析从浏览器获得的 JSON 数据,但是,我 运行 遇到了问题。在浏览器中,当我复制 属性: bedrooms 的路径时,这是我得到的路径:
- 0.bedrooms
0 是对象的名称,卧室在该对象下列为 属性。当我尝试创建名称为 0 的变量时,Swift 不允许,没有这个变量,我无法匹配路径。
以下是我针对结构形式的不同对象的代码:
struct HomeData: Codable{
let 0: Object0 <--------This line does not work
}
struct Object0: Codable{
let bathrooms: Double
let bedrooms: Double
let price: Int
let rawAdress: String
let squareFootage: Int
let propertyType: String
}
这是解析 JSON:
的代码 func parseJSON(homeData: Data){
let decoder = JSONDecoder()
do{
let decodedData = try decoder.decode(HomeData.self, from: homeData)
print(decodedData.0.bathrooms) <---This line gives an error as well
}catch{
print(error)
}
}
如何解析这些数据?任何帮助将不胜感激!
此外,这是数据。 Data
根据您的屏幕截图,根对象是一个数组
struct HomeData: Decodable {
let bathrooms: Double
let bedrooms: Double
let price: Int
let rawAddress: String
let squareFootage: Int
let propertyType: String
}
func parseJSON(homeData: Data){
let decoder = JSONDecoder()
do{
let decodedData = try decoder.decode([HomeData].self, from: homeData)
print(decodedData.first?.bathrooms
}catch{
print(error)
}
}