簡體   English   中英

在Swift中以JSON形式發布字典數組

[英]Posting arrays of dictionaries in Swift as JSON

我在Swift中有兩個數組,一個Customer數組和一個Order數組。

 var orders = _orderService.GetOrders(...) //just simplifying
 var customers = _customerService.GetCustomers(...) //simplifying obviously

現在,我將它們作為Array <Order>和Array <Customer>,我想將它們轉換為JSON,並通過POST將其發送到我的Web服務。

我的客戶和訂單類都具有.toDictionary()實現,可讓他們將自己表示為Dictionary,這對於json是完美的!

我認為要正確地將它們一次顯示為JSON,我可以執行以下操作:

  var customerJSON = customers.map({"\(NSJSONSerialization.dataWithJSONObject($0.toDictionary(), options: nil, error: &err))"})

這樣就可以工作並生成一個String數組,該數組中的每一行都是序列化的客戶。 我可以對訂單采用相同的方法,並且可以將它們組合以生成一個巨大的字符串數組,每個字符串都表示為JSON。

我現在遇到的問題是如何處理此陣列以正確地對其進行開機自檢。

    request.HTTPMethod = "POST"
    request.HTTPBody = <<WHAT GOES HERE TO SEND VALID JSON OVER??>>
    request.addValue("application/json", forHTTPHeaderField: "Content-Type")
    request.addValue("application/json", forHTTPHeaderField: "Accept")

非常感謝大家!

像這樣簡單:

Objective-C的:

    NSDictionary *data = @{@"orders": orders, @"customers":customers};
    NSData *jsondata = [NSJSONSerialization dataWithJSONObject:data options:0 error:&error];
    [request setHTTPBody:jsondata];

迅速:

  let data = ["orders": orders, "customers":customers]
  let jsondata = NSJSONSerialization.dataWithJSONObject(data, options: .allZeros, error: nil)
  request.HTTPBody = jsondata

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM