From bcd98e04a7585c2cd504d2f1269a9660d133bebc Mon Sep 17 00:00:00 2001 From: tanaka itsuki Date: Mon, 24 Jan 2022 00:53:33 +0900 Subject: [PATCH] add array query parse --- .../APIKit/Serializations/URLEncodedSerialization.swift | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/Sources/APIKit/Serializations/URLEncodedSerialization.swift b/Sources/APIKit/Serializations/URLEncodedSerialization.swift index 1c13425d..e07781b1 100644 --- a/Sources/APIKit/Serializations/URLEncodedSerialization.swift +++ b/Sources/APIKit/Serializations/URLEncodedSerialization.swift @@ -93,6 +93,14 @@ public final class URLEncodedSerialization { if value is NSNull { return "\(escape(key))" } + + if let valueAsArray = value as? Array { + let escapedKeyForArray = escape(key + "[]") + return valueAsArray.map { (element: Any) -> String in + let elementAsString = (element as? String) ?? "\(element)" + return "\(escapedKeyForArray)=\(escape(elementAsString))" + }.joined(separator: "&") + } let valueAsString = (value as? String) ?? "\(value)" return "\(escape(key))=\(escape(valueAsString))"