2017-06-22 13 views
0

Swiftで新しく、構造体をパラメータに変換してAlamofire 4でポストします。 英語を間違えてください。Swift 3構造体をAlamofire4のパラメータに変換する

import Foundation 

クラスstructUser:

私の構造体には、別のクラスであるNSObjectの{

var myStructUser = [person]() 


struct person { 
    var firstName : String 
    var lastName : String 
    var age: Int 
    init (firstName : String, lastName : String, age : Int) { 
     self.firstName = firstName 
     self.lastName = lastName 
     self.age = age 

    } 
} 

override init(){ 
    myStructUser.append(person(firstName: "John", lastName: "Doe", age: 11)) 
    myStructUser.append(person(firstName: "Richard", lastName: "Brauer", age : 22)) 
    myStructUser.append(person(firstName: "Merrideth", lastName: "Lind", age : 55)) 
} 

}メインクラスで、今

私はAlamofireを投稿したいのですが、どのようにすることができます構造体から最初の名前と年齢だけを変換しますか?

import UIKit 

クラスのViewController:のUIViewController {

let classStructUser = structUser() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    // Do any additional setup after loading the view, typically from a nib. 
    print(classStructUser.myStructUser) 
} 


func postJson(){ 
    //need format [String : Any] 
    for item in classStructUser.myStructUser{ 
     // var name = classStructUser.myStructUser.name 
     // var age = classStructUser.myStructUser.age 

    } 

    print(classStructUser.myStructUser) 

    /*here i need the Json in format: 

    { 
    "name":"John", 
    "age":11 
    } 

    { 
    "name":"Richard", 
    "age":22 
    } 

    { 
    "name":"Merrideth", 
    "age":55 
    } 


    an so on array.count 
    */ 
} 

}

別の質問:

IはVieControllerClass

THXから構造体(structUser)で変数にアクセスする方法あなたの助けに!私はistの仕組みを理解したいので、完全な解を説明してください。 Thx!

答えて

0
class structUser: NSObject{ 

    var myStructUser = [person]() 

    struct person { 
     var firstName : String 
     var lastName : String 
     var age: Int 
     init (firstName : String, lastName : String, age : Int) { 
      self.firstName = firstName 
      self.lastName = lastName 
      self.age = age 

     } 

     static func jsonArray(array : [person]) -> String 
     { 
      return "[" + array.map {$0.jsonRepresentation}.joined(separator: ",") + "]" 
     } 

     var jsonRepresentation : String { 
      return "{\"name\":\"\(firstName)\",\"age\":\"\(age)\"}" 
     } 
    } 

    func jsonRepresentation() -> String { 
     return person.jsonArray(array: myStructUser) 
    } 

    override init(){ 
     myStructUser.append(person(firstName: "John", lastName: "Doe", age: 11)) 
     myStructUser.append(person(firstName: "Richard", lastName: "Brauer", age : 22)) 
     myStructUser.append(person(firstName: "Merrideth", lastName: "Lind", age : 55)) 
    } 
} 

このように使用してください。

let jsonString = classStructUser.myStructUser.jsonRepresentation() 
+0

それだけです。名前と年齢だけを選ぶにはどうすればいいですか? – silazzz

+0

ありがとう!私はそれをテストします!多分私の第二の質問に答えることができますか? – silazzz

+0

更新された回答を参照 – Bilal

関連する問題