当前位置: 首页 > 知识库问答 >
问题:

在swift中向JSON主体添加一个值[重复]

舒枫涟
2023-03-14

我试图从swift(issue_id)中向JSON的主体添加一个值,我搜索了所有的地方,但看起来没有人回答我的问题,也没有人问我的问题。我还试图将它添加到params中,但显然失败了。

我知道如何添加参数和标头,但我不知道如何向主体添加值,下面是代码

private func restAPI(path: String, method: String, params: [String: Any], callback: @escaping(_ result: [[String: Any]]) -> Void) {

    var url: String = ""

    if path == "/login" {
        let dict = dictConvert(dictionary: params)
        url = baseUrl + path + dict
    }
    else {
        url = baseUrl + path
    }

    guard let urlData = URL(string: url) else {
        callback([])
        return
    }

    print("===URL=== " + url)

    let request = NSMutableURLRequest(url: urlData)
    request.httpMethod = "POST"

    if let key = UserDefaults.standard.string(forKey: "auth-key") {
        print("===Authentication=== " + key)
        request.addValue(key, forHTTPHeaderField: "Authentication")
    }
    let task = URLSession.shared.dataTask(with: request as URLRequest, completionHandler:{ (data, _ , error) in

        if error == nil {
            do {
                let stringData = String(data: data!, encoding: String.Encoding.utf8) as String!
                print("Data === " + (stringData ?? "nil"))

                if let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSArray {

                    guard let jsonArray = json as? [[String: Any]] else {
                        callback([])
                        return
                    }

                    callback(jsonArray)

                }
                else if let json = try JSONSerialization.jsonObject(with: data!, options: .mutableContainers) as? NSDictionary {

                    guard let jsonArray = json as? [String: Any] else {
                        callback([])
                        return
                    }

                    callback([jsonArray])

                }
                else {
                    callback([])
                }

            }
            catch _ {
                callback([])
            }
        }
    })
    task.resume()
}

共有1个答案

强烨
2023-03-14

您需要使用Request.HttpBody,它属于数据类型,并在正文上传递

 let bodyDictionary: [String: Any] = ["key1": value1,
                                         "key2": value2]
  let requestBodyData = try? JSONSerialization.data(withJSONObject: bodyDictionary, options: [])
    request.httpBody = requestBodyData
 类似资料:
  • 我有个文件名测试。json 我读了这个文件,我想得到这个 我要阅读和构建的代码 从JSON的那句话中,我得到了 com.google.gson.stream.MalformedJsonException:使用JsonReader.setLenient(true)接受格式错误的JSON 我的绳子坏了? 我试过了 我知道这不是JSON数组。

  • 我有下面的JSON代码,有必要在每个记录的末尾添加键/值,如示例所示。我使用JOLT Transform处理器进行JSON转换。 输入: 预期输出: 非常感谢你的帮助。提前感谢。

  • 问题内容: 我必须按照下面显示的方式创建一个表。我们可以这样创建吗?(如是) 表名称:样本 其中包含多个值的类别归档。 以及我们如何搜索类别4出现在表格的哪一行。 问题答案: 您无法创建嵌套表。而且您想到的并不是设计这样的桌子的好主意。您应该有两个表(如果是category,则恰好三个 表 包含描述)。一个用于,第二个表保存 每个产品 的 类别 。示例设计如下所示, 和填充样本记录 SQLFidd

  • 我正在努力为下面的数组添加一个值:

  • 问题内容: 假设我有一个数组,例如: 然后我想将一个元素推/追加到所述数组的末尾,以获得: 我应该使用哪种方法? 那我想在数组的 前面 添加一个元素呢?是否有固定的时间班次? 问题答案: 从 Swift 3/4/5开始 ,操作如下。 向数组末尾添加新元素。 将另一个数组附加到数组的末尾。 向您的数组中插入一个新元素。 将另一个数组的内容插入到数组中。 更多信息可以从第110页开始的“ Swift编

  • 问题内容: 有没有办法用python向json添加重复键? 根据我的理解,python词典中不能有重复的键。通常,创建json的方法是先创建字典,然后创建。但是,出于测试目的,我需要在JSON中使用重复的键。但是我不能这样做,因为我不能在python字典中添加重复的键。我正在尝试在python 3中做到这一点 问题答案: 您总是可以手动构造这样的字符串值。 另一方面,可以使 C* Python模块