Convert a simple string to JSON String in swift

前端 未结 2 764
我在风中等你
我在风中等你 2021-02-08 13:40

I know there is a question with same title here. But in that question, he is trying to convert a dictionary into JSON. But I have a simple sting like this: \"garden\"

A

相关标签:
2条回答
  • 2021-02-08 13:43

    Swift 3 Version:

        let location = ["location"]
        if let json = try? JSONSerialization.data(withJSONObject: location, options: []) {
            if let content = String(data: json, encoding: .utf8) {
                print(content)
            }
        }
    
    0 讨论(0)
  • 2021-02-08 13:58

    JSON has to be an array or a dictionary, it can't be only a String.

    I suggest you create an array with your String in it:

    let array = ["garden"]
    

    Then you create a JSON object from this array:

    if let json = try? NSJSONSerialization.dataWithJSONObject(array, options: []) {
        // here `json` is your JSON data
    }
    

    If you need this JSON as a String instead of data you can use this:

    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)
        }
    }
    

    Prints:

    ["garden"]

    If you prefer having a dictionary rather than an array, follow the same idea: create the dictionary then convert it.

    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)
        }
    }
    

    Prints:

    {"location":"garden"}

    0 讨论(0)
提交回复
热议问题