Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何将JSON上传到服务器?_Json_Swift - Fatal编程技术网

如何将JSON上传到服务器?

如何将JSON上传到服务器?,json,swift,Json,Swift,我有一个.json文件存储在模拟器的一个文件夹中,我正在使用: let jsonData = JSONDecoder().decode(Test.self, from: data) 解码此文件(测试是可解码的结构)。我想将此数据上载到服务器。但当我使用这个时: let task = URLSession.shared.uploadTask(with: request, from: data) 我拥有的数据不是typedata,而是Test。关于如何发送文件有什么想法吗 let json =

我有一个.json文件存储在模拟器的一个文件夹中,我正在使用:

let jsonData = JSONDecoder().decode(Test.self, from: data)
解码此文件(测试是可解码的结构)。我想将此数据上载到服务器。但当我使用这个时:

let task = URLSession.shared.uploadTask(with: request, from: data)
我拥有的数据不是type
data
,而是
Test
。关于如何发送文件有什么想法吗

let json = "{\"foo\": \"bar\"}"
let jsonData = json.data(using: .utf8)
或者从文件中,您可以执行以下操作:

if let url = Bundle.main.url(forResource: "foo.json", withExtension: "json") {
    let data = try Data(contentsOf: url)
}

我认为您应该尝试使用
let task=URLSession.shared.uploadTask(with:request,from:jsonData)
。这可能包含上载所需的数据。我尝试过,但遇到以下错误“无法将类型为“ViewController.Test”的值转换为预期的参数类型“data?”。显然,uploadTask只能处理类型数据。您想要什么?发送文件?或者只是文件的内容?
数据
是您需要上传的
数据。将
数据
传递到
上传任务
是正确的代码。不要解码文件。照原样上传就行了。它(您的
数据
)已经是JSON数据了。