我正在通过URLSession发出POST请求。我需要在请求正文中发送以下字符串:
def u_row(row, id_val): if row['uniqueid'] == id_val: return 1 for item in res_df_union['uniqueid']: if item in vacant_res_ids: res_df_union['Has_Res_Association'] = res_df_union.apply(lambda row: u_row(row, item), axis = 1)
所以我定义了一个结构来使用可编码发送数据作为请求主体。结构就是这个。
summaryWidget
但是我发的是这个
{"rebajados": false, "text": "pantalon", "municipios": [], "departamentos": []}
由于struct filter: Codable {
var text: String?
var departamentos: [String]?
var municipios: [String]?
var rebajados = false
}
使后端丢失,因此后端不返回结果。
那么,将数组变成没有双{
"departamentos": [
""
],
"municipios": [
""
],
"rebajados": false,
"text": "pantalon"
}
的空数组的可行方法是什么?
注意:我无法修改后端以接受带有空字符串的数组。
答案 0 :(得分:0)
尝试
struct filter:Codable {
var text: String?
var departamentos: [String] = []
var municipios: [String] = []
var rebajados = false
}
答案 1 :(得分:0)
首先请用首字母大写来命名结构。
空字符串数组被编码为空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)
}