私は、高速リクエストをHTTP要求で送信できるように、スピーディオブジェクトを辞書に変換するシリアライザメソッドを使用しています。スウィフトディクショナリは、[String]タイプの値のキーの後に角括弧を追加します。
この特定の方法は
class func toDictionary (_ order: Order) -> Dictionary<String, Any> {
return [
"products" : NSArray(array:order.getProducts()),
"owning_user" : NSString(string: order.getOwningUser()),
"restaurant" : NSString(string: order.getRestaurantId())
]
}
order.getProducts(私に問題を与えるものであるが)タイプの配列を返し[文字列]
私はそれとして送られるHTTPリクエストにこれを送信する場合
{"products[]":["...","..."],
"restaurant":"sdfsdf"
}
明らかに、私のサーバーは製品をキーとして期待しているため、適切な値が得られません。
角括弧が追加されている理由はありますか?
注:alamofire
EDITを経由して
私のHTTP要求が行われています。
で問題が判明がalamofire
としたソリューション
'toDictionary'は正しい値を返します(余分な角かっこは付きません)?その辞書をJSONオブジェクトにも変換すれば? – Larme
@Larme toDictionaryは、余分な角括弧なしで辞書を返します。 Alamofireは辞書の形式でしかパラメータを受け付けないので、辞書をJSONオブジェクトに変換することはできません – mwild