2017-02-23 15 views
2

のためのリクエストボディの作成:は、私はこのように見てリクエストボディを作成する必要がありAlamofire

{ 
    "accepted" : [ 
    { 
     "deposit" : 2000, 
     "name" : "Tuxedo", 
     "rent" : 100, 
     "id" : 3, 
     "favourited_by" : [ 

     ], 
     "tag_id" : 21, 
     "status" : "unknown", 
     "image_url" : "https:\/\/www.moss.co.uk\/images\/extralarge\/965549415_01.jpg", 
     "addresses" : [ 

     ] 
    }, 
    { 
     "deposit" : 3000, 
     "name" : "ps4", 
     "rent" : 50, 
     "id" : 2, 
     "favourited_by" : [ 

     ], 
     "tag_id" : 16, 
     "status" : "unknown", 
     "image_url" : "http:\/\/www.spokeslabs.com\/jstone\/ps4_images\/ps4-hrdware-large18.jpg", 
     "addresses" : [ 

     ] 
    }, 
    { 
     "deposit" : 1000, 
     "name" : "Electric drill", 
     "rent" : 100, 
     "id" : 1, 
     "favourited_by" : [ 

     ], 
     "tag_id" : 11, 
     "status" : "unknown", 
     "image_url" : "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2016\/06\/20\/12\/ryobi-rpd800-k-percussion-d.jpg", 
     "addresses" : [ 

     ] 
    } 
    ], 
    "rejected" : [ 

    ], 
    "address" : 
    { 
     "city" : "Hong Kong", 
     "lng" : "114.162699999745", 
     "country" : "Hong Kong", 
     "street" : "Barker Road", 
     "id" : "0", 
     "label" : "Home", 
     "lat" : "22.269837686727" 
    } 
} 

Unfortunantly私はこれを送信しています:

{ 
    "accepted" : [ 
    { 
     "deposit" : 2000, 
     "name" : "Tuxedo", 
     "rent" : 100, 
     "id" : 3, 
     "favourited_by" : [ 

     ], 
     "tag_id" : 21, 
     "status" : "unknown", 
     "image_url" : "https:\/\/www.moss.co.uk\/images\/extralarge\/965549415_01.jpg", 
     "addresses" : [ 

     ] 
    }, 
    { 
     "deposit" : 3000, 
     "name" : "ps4", 
     "rent" : 50, 
     "id" : 2, 
     "favourited_by" : [ 

     ], 
     "tag_id" : 16, 
     "status" : "unknown", 
     "image_url" : "http:\/\/www.spokeslabs.com\/jstone\/ps4_images\/ps4-hrdware-large18.jpg", 
     "addresses" : [ 

     ] 
    }, 
    { 
     "deposit" : 1000, 
     "name" : "Electric drill", 
     "rent" : 100, 
     "id" : 1, 
     "favourited_by" : [ 

     ], 
     "tag_id" : 11, 
     "status" : "unknown", 
     "image_url" : "https:\/\/static.independent.co.uk\/s3fs-public\/styles\/story_medium\/public\/thumbnails\/image\/2016\/06\/20\/12\/ryobi-rpd800-k-percussion-d.jpg", 
     "addresses" : [ 

     ] 
    } 
    ], 
    "rejected" : [ 

    ], 
    "address" : [ 
    { 
     "city" : "Hong Kong", 
     "lng" : "114.162699999745", 
     "country" : "Hong Kong", 
     "street" : "Barker Road", 
     "id" : "0", 
     "label" : "Home", 
     "lat" : "22.269837686727" 
    } 
    ] 
} 

差が最後のセクションにありますJSON。私が送信しているものには一連のアドレスが含まれていますが、送信したいのは1つのアドレスオブジェクトだけです。私はそれをどのように修正すればよい

var parameters = [String:[AnyObject]]() 
    parameters["rejected"] = rejectedItemsArray as [AnyObject] 
    parameters["accepted"] = acceptedItemsArray as [AnyObject] 
    parameters["address"] = addressArray as [AnyObject] 

    let request = NSMutableURLRequest(URL: NSURL(string: urlString)!) 
    request.setValue(self.token!, forHTTPHeaderField: Constant.tokenUserDefaultsKey) 
    request.HTTPMethod = "POST" 
    do { 
     let data = try NSJSONSerialization.dataWithJSONObject(parameters, options: .PrettyPrinted) 
     let requestBodyString = String(data: data, encoding: NSUTF8StringEncoding) 
     NSLog("Request Body: %@", requestBodyString!) 
     request.HTTPBody = data 
    } catch (_) { 
     NSLog("Failed to encode json for Post Items") 
    } 

このリクエストボディには、次のように作成されますか?

私はJSONに2つの配列を持つようにしたい:

1 - 2を "受け入れ" - 私のJSONに

そして、1つのオブジェクトを "拒否":

1 - "アドレス"

enter image description here

答えて

1

問題は、このラインparameters["address"] = addressArray as [AnyObject]です。あなたはaddressキーでArrayを設定し、辞書を設定する必要があります。このようにaddressDicを作成してください。ます。また、このようなパラメータの宣言を変更する必要があります。

let adddressDic = ["city" : "Hong Kong", "lng" : "114.162699999745", "country" : "Hong Kong", 
        "street" : "Barker Road", "id" : "0", "label" : "Home", "lat" : "22.269837686727"] 

は今addressキー

parameters["address"] = adddressDic 

を編集して、このDictionaryを設定します。 (このコード行で)ここ

var parameters = [String:AnyObject]() 
+0

は、理由のを行うことはできません。私のスクリーンショットを見る –

0
parameters["address"] = addressArray as [Any] 

あなたは配列インスタンスを割り当てています。 'addressArray'のJSONオブジェクト(Dictionary)を作成し、パラメータ["address"]に割り当てます。
():= [[ANYOBJECT]文字列] VARパラメータ:

var addresArray = [String : Any]() 

ことで//ストアJSON値/情報、その後

parameters["address"] = addressArray as [String : Any] 
関連する問題