1

我是 swift 新手,我想使用 AlamoFire 5.4 和 Swift 5 发出帖子请求

这是我需要发送到服务器的对象,我不知道如何在 swift 中创建它的等价物

[
  {
    "KEY": "LT_APP",
    "VALUE":"[{\"P_TIPO\":\"L\",\"P_PERNR\":\"925\",\"P_PASS\":\"GAMEROS01\",\"P_CEL\":\"6143194524\",\"P_TOKEN\":\"asdfgh\"}]"
  }
]

value 里面的内容是一个字符串

在邮递员中看起来像这样

在此处输入图像描述

这就是我所拥有的

let jsonObject // Here is my problem xD how to build the object
AF.request(url,
           method: .post,parameters: jsonObject , encoding: JSONEncoding.default)
    .authenticate(username: user, password: password)
    .responseJSON { response in
        switch response.result {
            case .success(let json):
                let rtn = JSON(json)
                print(rtn["result"]["RESPONSE"][0])
            case .failure(let error):
                print(error)
        }
    }

我尝试了几种方法来创建它,在一个类中,使用 [String: Any] 字典,最后是直接声明的对象

class Valores: NSObject{
var KEY:String
var VALUE:String

init(key: String, value: String){
    self.KEY = key
    self.VALUE = value
 }
}

var Arreglo = [Valores] = [Valores]()

let objeto : Valores = Valores(key: "LT_APP", value:"[{\"P_TIPO\":\"L\",\"P_PERNR\":\"925\",\"P_PASS\":\"GAMEROS01\",\"P_CEL\":\"6143194524\",\"P_TOKEN\":\"asdfgh\"}]")
Arreglo.append(Objeto)

谢谢

4

2 回答 2

0

我想你在这里有点困惑。所以,我解释一些观点。

  • 首先,您需要在 image.so 中共享时传入一个dictionary arrayparameter声明一个字典数组

var param = [String:Any] //这里有一些问题,我不能输入字典数组,所以在片段中看到。

  • 之后,如果您在那里,您还将字典数组放入参数值中[{\"P_TIPO\":\"L\",\"P_PERNR\":\"925\",\"P_PASS\":\"GAMEROS01\",\"P_CEL\":\"6143194524\",\"P_TOKEN\":\"asdfgh\"}] ,因此,首先取字典

让dict = [“P_TIPO”:“L”,“P_PERNR”:“925”,“P_PASS”:“GAMEROS01”,“P_CEL”:“6143194524”,“P_TOKEN”:“asdfgh”]

而不是将该字典放入数组中

让 arrVal = [字典]

  • 最后设置参数的键和值

参数 = [["LT_APP":arrVal]]

  • 在参数中传递参数。

查看代码段

var param = [[String:Any]]()
        
let dict = ["P_TIPO":"L", "P_PERNR":"925", "P_PASS":"GAMEROS01", "P_CEL":"6143194524", "P_TOKEN":"asdfgh"]
let arrVal = [dict]
        
param = [["LT_APP":arrVal]]

于 2021-06-22T05:20:45.863 回答
0

不确定它的正确方法,但可能这会奏效..

    let arr = [["P_TIPO":"L"],["P_PERNR":"925"],["P_PASS":"GAMEROS01"],["P_CEL":"6143194524"],["P_TOKEN":"asdfgh"]]
    var text = "\(arr)"
    text = text.replacingOccurrences(of: "[", with: "", options: NSString.CompareOptions.literal, range:nil)
    text = text.replacingOccurrences(of: "]", with: "", options: NSString.CompareOptions.literal, range:nil)
    text = "[{\(text)}]"
    let rest = [["KEY": "LT_APP"], ["VALUE": "\(text)"]]
    print(rest)
于 2021-06-22T04:59:53.773 回答