[英]Unable to get key value pair in Json response in swift 3?
我有如下所示的Json服務器響應數據,我使用模型類獲得了所有鍵值對,而無法僅獲得一個鍵值對street有人可以幫助我如何獲取街道鍵值對嗎?
這是我的傑森數據
{
"address": {
"city": "chennai",
"firstname": "sommesh",
"lastname": "s",
"email": "test@gmail.com",
"postcode": "43",
"street": [
"[No: 14; 8th cross street]"
],
"country_id": "US",
"region_code": "CA",
"region_id": "12",
"telephone": "8756467654",
"sameAsBilling": 1,
"region": "California",
"prefix": "",
"company": "Test Company"
}
}
這是我的模型類代碼
struct GuestAddress {
let id : Int
let region : String
let regionId : Any
let regionCode : String
let countryId : String
let company : String
let telephone : Any
let postCode : Any
let city : String
let firstName : String
let lastName : String
let email : String
let sameAsBilling : Any
let saveInAddressBook : Any
var street : [String]
init(dict : [String:Any]) {
self.id = dict["id"] as! Int
self.region = dict["region"]! as! String
self.regionId = dict["region_id"]!
self.regionCode = dict["region_code"]! as! String
self.countryId = dict["country_id"]! as! String
self.company = dict["company"]! as! String
self.telephone = dict["telephone"]! as! String
self.postCode = dict["postcode"]!
self.city = dict["city"]! as! String
self.firstName = dict["firstname"]! as! String
self.lastName = dict["lastname"]! as! String
self.email = dict["email"]! as! String
self.sameAsBilling = dict["same_as_billing"]!
self.saveInAddressBook = dict["save_in_address_book"]!
let guestStreet = dict["street"] as! [String]
var streetArr = street
for item in guestStreet {
streetArr.append(item)
}
street = streetArr
}
}
首先初始化變量
var street:[String] = []
因為在這里,您已經聲明
var street:[String]
永遠不會初始化,寫完之后
var streetArr =街道
這意味着“ streetArr”也未初始化。 所以
streetArr.append(item)不執行任何操作。
您有多余的代碼工作。
如下更正:
var street : [String] = []
init(dict : [String:Any]) {
:
:
:
:
let guestStreet : [String] = dict["street"] as! [String] //2. here, guestStreet is the array of address.
// 3. Print guestStreet
//[ "[No: 14; 8th cross street]" ]
// get required result
for item in guestStreet {
var address = item
address.remove(at: address.startIndex) //4. remove first brace
address = String(address.characters.dropLast()) //5. remove last brace
street.append(address) //6. Append address
}
print(street.first!) //7. Output
而已。
輸出:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.