如何从 Swift 3.1 中的 API 创建解析数据,API 以括号开头和结尾

Posted

技术标签:

【中文标题】如何从 Swift 3.1 中的 API 创建解析数据,API 以括号开头和结尾【英文标题】:How to create parse data from an API in Swift 3.1 with the API starting and ending with Parentheses 【发布时间】:2017-02-26 02:43:55 【问题描述】:

我正在尝试从 API 解析数据。

我可以打印 JSON 列表,但我不能使用其中的任何数据,因为它有这种奇怪的风格:

(
    
        name = "George George";
    
)

我目前正在使用它来解析 Swift 3.1 中的数据:

let task = URLSession.shared.dataTask(with: url)  (data, response, error) in
        if error != nil 
            print(error!)
         else 
            if let urlContent = data 
                do 
                    let jsonResult = try JSONSerialization.jsonObject(with: urlContent, options: JSONSerialization.ReadingOptions.mutableContainers) as AnyObject
                    print(jsonResult)
                    print(jsonResult["name"] as AnyObject)
                 catch 
                    print("JSON Processing Failed")
                
            
        
    
    task.resume()

print(jsonResult["name"] as AnyObject) 应该返回名称,但它失败了

解析名称需要做什么?

【问题讨论】:

Correctly Parsing JSON in Swift 3的可能重复 @Sneak Nop.. 你提到的问题与这种情况无关 这个怎么样? ***.com/questions/38155436/json-parsing-in-swift-3***.com/questions/39939143/…***.com/questions/39458836/parsing-json-using-swift-3***.com/questions/39609726/swift-3-json-parsing***.com/questions/40378048/…***.com/questions/39759998/…***.com/questions/39423367/… @Sneak 问题是 API 的结构而不是调用 @Sneak 非常感谢你 【参考方案1】:

我想通了。如果 API 响应如下所示:

(
    
        name = "George George";
    
)

这意味着 API 响应是错误的,完美的方法是修复来自后端的响应,而不是尝试从错误的 API 响应中解析数据。

没有理由浪费时间尝试从错误的 API 响应中解析数据。

【讨论】:

以上是关于如何从 Swift 3.1 中的 API 创建解析数据,API 以括号开头和结尾的主要内容,如果未能解决你的问题,请参考以下文章

Swift - 如何从 mapViewkit 中的 API 数据创建要使用的局部变量

如何以正确的方式在 IOS SWIFT 3 中解析 Google 距离矩阵 API JSON

从 Swift (3.1) 表格视图中动态创建的单元格获取有序的文本字段数据

从 URL 解析 Swift 4 中的 JsonObject

从 Guidebox API 在 Swift 中解析 JSON 数据

解析Google自定义搜索API Swift