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

如何将原始字典转换为JSON字符串?,json,swift,dictionary,Json,Swift,Dictionary,我有这类字典: { “event”: { “type”: “message_create”, “message_create”: { “target”: { “recipient_id”: “RECIPIENT_USER_ID” }, “message_data”: { “text”: “Hello World!”, }

我有这类字典:

{
    “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)
}
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)
}
现在我们要将
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)
}
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
现在就是您想要的!您应该在日志上看到:

{“事件”:{“类型”:“消息创建”,“消息创建”:{“目标”:{“收件人id”:“收件人用户id”},“消息数据”:{“文本”:“您好” 世界!}}}}}


这是非常有效的json。

是否有任何努力来实现它?请不要犹豫,将其添加到问题中。相关人员:谢谢艾哈迈德,我能够获得jsonString。