如何将原始字典转换为 JSON 字符串?

哈沙德

我有这种类型的字典:

{
    “event”: {
        “type”: “message_create”, “message_create”: {
            “target”: {
                “recipient_id”: “RECIPIENT_USER_ID”
            }, “message_data”: {
                “text”: “Hello World!”,
            }
        }
}

我想将此字典转换为 JSON 字符串格式,但无法做到。请任何人指导我。

这是代码,直到我在发送消息后尝试我收到来自服务器的错误验证数据消息 -

 func sendMessage(_ userInfo: String) {

        let requestURL = URL(string: "https://api.twitter.com/1.1/direct_messages/events/new.json")
        Alamofire.request(requestURL!, method: .post,
                          encoding: URLEncoding.default,
                          headers: getRequestHeader()).responseJSON { (response) in
                            print(response)

                            switch response.result {
                            case .success:
                                print("Validation Successful")
                            case .failure(let error):
                                print("FAILURE ERROR : \(error.localizedDescription)")
                                print("ERROR : \(error)")
                                if let data = response.data {
                                    print("Print Server Error: " + String(data: data, encoding: String.Encoding.utf8)!)
                                }
                            }

        }
    }

    // MARK: - Get Request Header
    func getRequestHeader() -> ([String: String]) {

        return ["authorization": "","CONSUMER_KEY":"",
                "CONSUMER_SECRET":"",
                "oauth_secret":"7W2Gx4KEjz7d164NPvJaOktzhaSPpV3VNjvyjpIqaDc02",
                "oauth_token":"2605063830-IffuOmn2tEajFXY6khbzmeMwNoUvGkQ8qrYonzw",
                "oauth_version":"1.0",
                "oauth_signature_method":"HMAC-SHA1",
                "Content-Type": "application/json"
        ]
    }
艾哈迈德

为了专注于获取 json 字符串(而不关心您如何获取字典),我假设您myDict是要转换为 json 字符串的字典:

let json = """
{
    "event": {
        "type": "message_create", "message_create": {
            "target": {
                "recipient_id": "RECIPIENT_USER_ID"
            },
            "message_data": {
                "text": "Hello World!"
            }
        }
    }
}
""".data(using: .utf8)

var myDict: [String: Any] = [: ]

do {
    if let dict = try JSONSerialization.jsonObject(with: json!, options: []) as? [String: Any] {
        myDict = dict
    }
} catch {
    print(error)
}

所以现在我们要转换myDict为json字符串:

do {
    // converting `myDict` to Json Data, and then
    // getting our json as string from the `jsonData`:
    if let jsonData = try JSONSerialization.data(withJSONObject: myDict, options: []) as? Data,
       let jsonString = String(data: jsonData, encoding: .utf8) {
        print(jsonString)
    }
} catch {
    print(error)
}

jsonString现在是你在找什么!你应该在日志上看到:

{"event":{"type":"message_create","message_create":{"target":{"recipient_id":"RECIPIENT_USER_ID"},"message_data":{"text":"Hello World!"}}} }

这是完全有效的json。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章