在swift中将简单字符串转换为JSON字符串

在swift中将简单字符串转换为JSON字符串,json,swift,swifty-json,Json,Swift,Swifty Json,我知道有一个标题相同的问题。但在这个问题上,他正试图将字典转换成JSON。但我有一个简单的刺,像这样: “花园” 我必须将其作为JSON发送。我尝试过快速JSON,但仍然无法将其转换为JSON 这是我的密码: func jsonStringFromString(str:NSString)->NSString{ let strData = str.dataUsingEncoding(NSUTF8StringEncoding) let json = JSON(data: st

我知道有一个标题相同的问题。但在这个问题上,他正试图将字典转换成JSON。但我有一个简单的刺,像这样: “花园”

我必须将其作为JSON发送。我尝试过快速JSON,但仍然无法将其转换为JSON

这是我的密码:

func jsonStringFromString(str:NSString)->NSString{

    let strData = str.dataUsingEncoding(NSUTF8StringEncoding)
    let json = JSON(data: strData!)
    let jsonString = json.string

    return jsonString!
}
我的代码在最后一行崩溃:

fatal error: unexpectedly found nil while unwrapping an Optional value
我做错什么了吗

,它不能只是一个字符串

我建议您创建一个包含字符串的数组:

let array = ["garden"]
然后从该数组创建一个JSON对象:

if let json = try? NSJSONSerialization.dataWithJSONObject(array, options: []) {
    // here `json` is your JSON data
}
如果需要将此JSON作为字符串而不是数据,可以使用:

if let json = try? NSJSONSerialization.dataWithJSONObject(array, options: []) {
    // here `json` is your JSON data, an array containing the String
    // if you need a JSON string instead of data, then do this:
    if let content = String(data: json, encoding: NSUTF8StringEncoding) {
        // here `content` is the JSON data decoded as a String
        print(content)
    }
}
印刷品:

[“花园”]

如果您喜欢使用字典而不是数组,请遵循相同的想法:创建字典,然后转换它

let dict = ["location": "garden"]

if let json = try? NSJSONSerialization.dataWithJSONObject(dict, options: []) {
    if let content = String(data: json, encoding: NSUTF8StringEncoding) {
        // here `content` is the JSON dictionary containing the String
        print(content)
    }
}
印刷品:

{“地点”:“花园”}


Swift 3版本:

    let location = ["location"]
    if let json = try? JSONSerialization.data(withJSONObject: location, options: []) {
        if let content = String(data: json, encoding: .utf8) {
            print(content)
        }
    }