我想测试解析json文件。 我有以下Json文件作为内部文件存储在项目中。如何解析包含词典中不均匀项目的Json
问题:
- 房间里有不均匀的物品;有些有2个项目,有些有3个项目。
如何处理这种情况?
-------------- Json file:
[
{
"_id":"598f1442bf068c0b28c2f991",
"purpose":"Meeting with Jay",
"date":"2017-08-09T03:32:43.395Z",
"__v":0,
"room":{
"capacity":0,
"address":"-"
}
},
{
"_id":"598f147ebf068c0b28c2f992",
"purpose":"Presentation to mike",
"date":"2017-08-10T07:45:43.395Z",
"__v":0,
"room":{
"name":"SC-07-01",
"capacity":10,
"address":"The Hi Five"
}
},
{
"_id":"598f1508bf068c0b28c2f993",
"purpose":"Demo to users",
"date":"2017-08-11T09:00:00.000Z",
"__v":0,
"room":{
"name":"SC-08-01",
"capacity":30,
"address":"The Hi Five"
}
},
{
"_id":"598f16b3bf068c0b28c2f994",
"purpose":"Cooking with William",
"date":"2017-08-09T05:26:43.395Z",
"__v":0,
"room":{
"name":"MBC-#07-01",
"capacity":10,
"address":"Maple Tree garden"
}
}
]
- 更新 -
class RoomBooking {
var purpose:String?
var date:String? // need to take the date and hh:mm out from it
var hhmm: String?
var bookDate: String?
Var room:Room?
init(purpose:String, date:String,hhmm :String, bookDate:String, room : Room) {
self.purpose = purpose
self.date = date
self.hhmm = hhmm
self.bookDate = bookDate
self.room = room
}
}
class Room {
var name:String?
var capacity:Int?
var address:String?
}
//-1- How to iterate the room?
//-2- How to get the date and time (hh:mm) from the date Object
//-3- create an array object of RoomBooking
var rmbookingArray = [RoomBooking]()
for user in array {
if let userDict = user as? [String:Any]{
if let purpose = userDict.value(forKey: "purpose") {
return purpose as! String
}
return "No purpose enter"
}()
if let userDate = userDict.value(forKey: "date") {
return date as! String
}
return "No date enter"
}()
if let userRoom = ??
}
var roomObject = Room()
roomObject.name = userRoom["name"] as? String
roomObject.capacity = userRoom["capacity"] as? Int
roomObject.address = userRoom["address"] as? String
var rb = RoomBooking()
rb.purpose = userPurpose
rb.date = userDate
rb.room = roomObject
rmbookingArray.append(rb)
}
}
感谢
默认情况下,您应该让您的房间拥有3个物品,如果某个物品没有物品,只需将其设置为“空”即可。这应该会改善你的解析问题 – Lamar
你能告诉我该怎么做。我对swift和json很陌生。房间应该有3个,怎么知道它什么时候包含2个? – MilkBottle
例如,你看到你的第一个对象是如何处理你的地址的:“ - ”,我猜这是说你没有这个人的地址。当你解析时,你可以说如果'-'不显示这个用户的地址 – Lamar