Ios 通用rest API的NSData对象中的JSON

Ios 通用rest API的NSData对象中的JSON,ios,json,swift,rest,nsdata,Ios,Json,Swift,Rest,Nsdata,我正在尝试将数据从我的应用程序发送到一个RESTAPI,该API也被另一个程序员开发的Android应用程序使用。我使用NSJSONSerialization.dataWithJSONObject将JSON转换为NSData对象,然后将其附加到NSURLRequest,但NSData对象是JSON字符串的十六进制表示形式。另一位开发人员表示,他的Android代码正在以UTF-8编码创建和传输JSON对象,因此我的问题是,如何将JSON字符串作为UTF-8文本发送,或者如何使API能够尽可能无缝

我正在尝试将数据从我的应用程序发送到一个RESTAPI,该API也被另一个程序员开发的Android应用程序使用。我使用NSJSONSerialization.dataWithJSONObject将JSON转换为NSData对象,然后将其附加到NSURLRequest,但NSData对象是JSON字符串的十六进制表示形式。另一位开发人员表示,他的Android代码正在以UTF-8编码创建和传输JSON对象,因此我的问题是,如何将JSON字符串作为UTF-8文本发送,或者如何使API能够尽可能无缝地处理这两个源

编辑:我现在使用的代码

func postToServer() {

    let endPoint: String = "http://server.com"
    guard let url = NSURL(string: endPoint) else {
        print("ERROR: cannot create URL")
        return
    }
    let urlRequest = NSMutableURLRequest(URL: url)
    urlRequest.HTTPMethod = "POST"
    urlRequest.setValue("application/json; charset=utf-8", forHTTPHeaderField: "Content-Type")

    let loc = self.getLocation()
    var content:[String: AnyObject] = ["action": "put-point", "request": ["rangeKey": self.id, "lng": loc.coordinate.longitude, "lat": loc.coordinate.latitude, "count": self.count]]

    var data: NSData! = NSData()
    do {
        data = try NSJSONSerialization.dataWithJSONObject(content, options: NSJSONWritingOptions())
        print(data)
    } catch {
        print ("Error")
    }

    urlRequest.HTTPBody = data

    let config = NSURLSessionConfiguration.defaultSessionConfiguration()
    let session = NSURLSession(configuration: config)


    let task = session.dataTaskWithRequest(urlRequest, completionHandler:{ data, response, error in
        guard error == nil else {
            print("ERROR: Cannot call Get on endpoint")
            print(error)
            return
        }

        guard let responseData = data else {
            print("ERROR: Did not receive any data")
            return
        }

        print("DATA: \(data)")

    })
    task.resume()
}

你可以这样做

let jsonObj = [...]
var data = NSData()

do {
    data = try NSJSONSerialization.dataWithJSONObject(jsonObj, options: .PrettyPrinted)
    let dataString = NSString(data: data, encoding: NSUTF8StringEncoding)!
} catch {
    print("error:  \(error)")
}

*在Swift 2&Xcode 7.3.1上尝试过,我确实尝试过,但我无法将NSString附加到urlRequest.HTTPBody,因为它需要一个NSData对象。我将用我现在使用的代码更新这个问题。