gpt4 book ai didi

json - 使用 Alamofire 的 JSON 写入 (_SwiftValue) 中的类型无效

转载 作者:搜寻专家 更新时间:2023-10-31 22:59:07 24 4
gpt4 key购买 nike

我现在已经尝试了很多东西并且仍然得到:由于未捕获的异常“NSInvalidArgumentException”而终止应用程序,原因:“JSON 写入 (_SwiftValue) 中的类型无效”

更新:我扫描条形码并保存信息:

let calendar = Calendar.current
let expiryDate = (calendar as NSCalendar).date(byAdding: .month, value: 3, to: Date(), options: [])?.description

let barcode = BarcodeData(barcodeValue: value,
datetime: dateTime,
expiryDate: expiryDate!,
latitude: latitude.description,
longitude: longitude.description,
status: txtStatus.text!,
type: txtType.text!,
extraText: "")

然后对象被映射为一个JSON字符串,好像这个函数添加了斜线(/):

let jsonBarcode = Mapper<BarcodeData>().toJSONString(barcode)

然后将条形码添加到字符串列表中:

barcodeDataList.append(jsonBarcode)

当我点击一个按钮时,我调用了 Web 服务,它预期参数的形式为:

let testParams : Parameters =
[ "udid": "my_udid",
"data": jsonArray
]

jsonArray 由 BarcodeData 对象的数组组成,如上所示。

与 Web 服务的通信如下所示:

Alamofire.request(url, method: .post, parameters: testParams, encoding: JSONEncoding.default).validate().responseJSON { response in

switch response.result {
case .success:
print("Validation successful")

if let json = response.result.value {
print("JSON: \(json)")
}

case .failure(let error):
print("Error: \(error)")
}
}

以下内容被传递给 ws:

    ["udid": "\"001-my_udid\"", "data": [
"{\"latitude\":\"0.0\",\"status\":\"Empty\",\"datetime\":\"2016-09-20 05:10\",\"longitude\":\"0.0\",\"type\":\"ABC123\",\"barcodevalue\":\"123456\"}"
]]

“数据”的 json 数组在 jsonlint.com 进行验证,服务器的响应采用 json 对象的形式,例如:

{result: "Data successfully received"}

最佳答案

将请求中的编码从 encoding: JSONEncoding.default 更改为 encoding: URLEncoding.default

关于json - 使用 Alamofire 的 JSON 写入 (_SwiftValue) 中的类型无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39585486/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com