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
どうすればいいですか?私は迅速かつjsonにはかなり新しいです。部屋には3があり、それに2が含まれていることを知る方法は? – MilkBottle
たとえば、あなたの最初のオブジェクトにあなたがどのように ""アドレスを持っているかを見てみましょう。 " - " '、あなたがこの人の住所を持っていないということでした。あなたが解析しているときに、 '-'がこのユーザのアドレスに対して何も表示しないと言うことができます。 – Lamar