2017-11-01 3 views
0

私はモデルのクラスを使用してすべてのキー値のペアを取得し、1つだけのキー値のペアを得ることができません以下のように、以下のようにJsonサーバーの応答データを持っています誰も私にどのように距離のキー値のペアを取得する手助けできますか? [文字列]:ここJsonレスポンスでキー値のペアを迅速に取得できませんでしたか?

は私のJSONデータがここ

{ 
    "address": { 
    "city": "chennai", 
    "firstname": "sommesh", 
    "lastname": "s", 
    "email": "[email protected]", 
    "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 
     } 
     } 

Here is my postman data image

+2

あなたが求めているものを明確にすることはできますか?あなたは、 "ただ一つのキーバリューペアを取得する"と言った。しかし、「キーバリュー・ペア・ストリート」とは何ですか?そして、あなたはそれを手に入れたいだけですか? –

+0

私のJsonデータの通りキーの値のペア私は上記の@RayToalで表示されたコードで取得できません – user0246

+0

あなたはちょうど私の郵便配達のイメージです上記の投稿画像をチェック@RayToal – user0246

答えて

1

ある変数最初

するvar通りを初期化しています= []

ここので、あなたが宣言した

のvarストリート:[文字列]

初期化されることはありません、そこ あなたが書かれた後

VAR streetArr =通り

これは、 "streetArr"も初期化されていないことを意味します。したがって

streetArr.append(アイテム) は何もしません。

+0

["[No:14; 8th cross street]"]のように、中括弧を取り除き、その中の文字列を取得する方法 – user0246

+0

これはあなたの応答でなければなりません。文字列プロパティ "stringByReplacingOccurrencesOfString" –

0

あなたは冗長コード作業があります。これだけ

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 

を:

は、次のようにそれを修正します。

出力:

enter image description here

関連する問題