ios - 使用 SwiftyJSON 包

标签 ios swift swifty-json

尝试使用 SwiftyJSON 库,但现在挣扎了一天左右。

我得到了这个 JSON。

“blah”:[{“xdeltaY":0,"xdeltaX":0,"blah1":435,"blah2":"\/Numbers\/Numbers.001.png","height":693.2142857142857,"width":1200,"blah3":240}]

我从文件中读取它并像这样分配它?

let quickfix  = String(data: response.1, encoding: String.Encoding.utf8)
let json2F = JSON(quickfix!)

这似乎有效。我可以打印这个。

json2F.debugDescription

但除此之外我几乎无能为力。好像还没有解析,我认为它只是一个字符串。

我不知道如何访问其中的数据。我也试过这个...

if let dataFromString = quickfix?.data(using: .utf8, allowLossyConversion: false) {
                    let json2E = JSON(data: dataFromString)
                    print("json2E debugDescription \(json2F.debugDescription)")
                }

但它返回 null!!如何使用这个库?

最佳答案

我觉得你的代码不错。您的 JSON 似乎无效。

尝试在其周围放置一个封装对象 {}。像这样:

{"blah": [{"xdeltaY":0, "xdeltaX":0, "blah1":435, "blah2":"\/Numbers\/Numbers.001.png", "height ":693.2142857142857, "width":1200, "blah3":240}]}

另外请确保您使用的是正确的而不是

字符串+JSON

我还想分享一个我用来从字符串中获取 JSON 的扩展,它还会在控制台日志中为您提供错误消息,以防止无效的 JSON 弄乱您的程序。

import Foundation
import SwiftyJSON

public extension String {
    public func toJSON() -> JSON? {
        if let data = self.data(using: String.Encoding.utf8, allowLossyConversion: false) {
            var jsonError: NSError?
            let json = JSON(data: data, error: &jsonError)
            if jsonError == nil {
                return json
            } else {
                print(jsonError!.description)
            }
        }
        return nil
    }

    public func toJSONValue() -> JSON {
        return self.toJSON() ?? JSON.null
    }
}

关于ios - 使用 SwiftyJSON 包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42507214/

相关文章:

java - 从 Java 到 Swift 的反射

swift - 更改 SKShapeNode 的 lineJoin

ios - 当快速触摸按钮外部时,突出显示继续

ios - 我可以在 IOS 的特定位置开始在 UITextField 中输入文本吗?

objective-c - NSURLConnection 发送异步请求 :queue:completionHandler not working in iOS 4. 3

swift - 如何按角度移动 SpriteNode?

swift - Cocoapods:确定 pod 版本

swift - 如何使用 alamofire 和 SwiftyJSON 构建对象

json - Swift 4 - 如何像 java 中的 Gson 一样自动将 Json 转换为 swift Object

ios - 在 WWDC2014 中使用 VTCompressionSession