【问题标题】:SwiftyJSON object back to stringSwiftyJSON 对象返回字符串
【发布时间】:2015-09-17 11:24:32
【问题描述】:

我正在使用 SwiftyJSON 库将 JSON 解析为 swift 对象。我可以创建 JSON 对象并对其进行读写

// Create json object to represent library
var libraryObject = JSON(["name":"mylibrary","tasks":["Task1","Task2","Task3"]])


    // Get
    println(libraryObject["name"])
    println(libraryObject["tasks"][0])

    // Set
    println("Setting first task to 'New Task'")
    libraryObject["tasks"][0] = "New Task"

    // Get
    println(libraryObject["tasks"][0])

    // Convert object to JSON and print
    println(libraryObject)

所有这些都按预期工作。我只想将 libraryObject 转换回 JSON 格式的字符串!

println(libraryObject) 命令将我想要的内容输出到控制台,但我找不到将其作为字符串获取的方法。

libraryObject.Stringvalue 和 libraryObject.String 都返回空值,但是当我尝试例如 println("content: "+libraryObject) 尝试将字符串附加到 JSON 时出现错误

【问题讨论】:

    标签: ios json swift swifty-json


    【解决方案1】:

    来自 SwiftyJSON on GitHub 的自述文件:

    //convert the JSON to a raw String
    if let string = libraryObject.rawString() {
    //Do something you want
      print(string)
    }
    

    【讨论】:

    • 我发誓我做到了,但只是有一个完全的盲点!非常感谢
    • 确保使用 .rawString() 而不是 .rawString(不带括号)。花了很长时间试图弄清楚为什么我没有得到相同的结果。
    【解决方案2】:
    //convert the JSON to a raw String
    if let strJson = jsonObject.rawString() {
        // 'strJson' contains string version of 'jsonObject'
    }
    
    //convert the String back to JSON (used this way when used with Alamofire to prevent errors like Task .<1> HTTP load failed (error code: -1009 [1:50])
    if let data = strJson.data(using: .utf8) {
        if let jsonObject = try? JSON(data: data) {
            // 'jsonObject' contains Json version of 'strJson'
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-01-23
      • 1970-01-01
      • 2021-04-17
      相关资源
      最近更新 更多