如何从可编码结构中的空数组中删除双引号

how to remove double quote from empty array in codable struct

我正在使用 URLSession 发出 POST 请求。我需要在请求正文中发送以下字符串:

{"rebajados": false, "text": "pantalon", "municipios": [], "departamentos": []}

所以我定义了一个结构来使用 codable 将数据作为请求正文发送。结构是这样的。

struct filter: Codable {
  var text: String?
  var departamentos: [String]?
  var municipios: [String]?
  var rebajados = false
}

但是我发送的是这样的:

{
    "departamentos": [
        ""
    ],
    "municipios": [
        ""
    ],
    "rebajados": false,
        "text": "pantalon"
}

后端returns没有结果因为[""]让它丢失​​了。 那么有什么可行的方法可以使数组成为没有双 "" 的空数组?

注意:我无法修改后端以接受带有空字符串的数组。

尝试

  struct filter:Codable {
    var text: String?
    var departamentos: [String] = []
    var municipios: [String] = []
    var rebajados = false
   }

首先请以大写字母开头的结构命名。

空字符串数组被编码为空 JSON 数组

struct Filter : Codable {
    let text : String
    let departamentos : [String]
    let municipios : [String]
    let rebajados : Bool
}

let filter = Filter(text: "pantalon", departamentos: [], municipios: [], rebajados: false)

do {
    let data = try JSONEncoder().encode(filter)
    let string = String(data: data, encoding: .utf8)!
    print(string) // {"rebajados":false,"municipios":[],"departamentos":[],"text":"pantalon"}

} catch {
    print(error)
}