尝试使用 Alamofire 在 Swift 3 中解析 JSON

大流士

我正在使用 Alamofire 调用我的 API,它返回以下 JSON:

{
    outer =         {
        height = 3457;
        width = 2736;
    };
    cost = 220;
    name = "Mega";
},
    {
    outer =         {
        height = 275;
        width = 300;
    };
    cost = 362;
    name = "Ultra";
},

例如,我想获取名称和高度并将它们存储到数组中。

这是我用来获取高度的相关代码:

 if let url = URL(string: "LINKTOAPI") {
        var urlRequest = URLRequest(url: url)
        urlRequest.httpMethod = HTTPMethod.get.rawValue
        urlRequest.addValue(apiKey, forHTTPHeaderField: "user-key")
        urlRequest.addValue("application/json", forHTTPHeaderField: "Accept")

        Alamofire.request(urlRequest).responseJSON {response in
            if let result = response.result.value as? [String:Any],
                let main = result["outer"] as? [[String:String]]{
                for obj in main{
                    print(obj["height"])                       
                }
            }
 }

下面的另一个例子:

https://stackoverflow.com/questions/41462844/json-parsing-in-swift-3-using-alamofire

我使用上述示例尝试使用相关代码:

 Alamofire.request(urlRequest).responseJSON {response in
            if let jsonDict = response.result.value as? [String:Any],
                let dataArray = jsonDict["outer"] as? [[String:Any]] {
                let nameArray = dataArray.flatMap { $0["height"] as? String }
                print(nameArray)
            }

在这两个示例中,实际上没有打印任何内容,因此我不确定出了什么问题。任何建议表示赞赏

编辑:下面的完整 JSON

SUCCESS: (
        {
    outer =         {
        height = 3457;
        width = 2736;
    };
    cost = 220;
    name = "Mega";
 },
        {
    outer =         {
        height = 275;
        width = 300;
    };
    cost = 362;
    name = "Ultra";
 },
        {
    outer =         {
        height = 31;
        width = 56;
    };
    cost = 42;
    name = "Mini";
 }
)
爬行者说话

根据评论,我了解到结构实际上是这样的:

[{
    outer =         {
        height = 3457;
        width = 2736;
    };
    cost = 220;
    name = "Mega";
},
    {
    outer =         {
        height = 275;
        width = 300;
    };
    cost = 362;
    name = "Ultra";
}]

我仍然不完全理解您希望对所有这些变量做什么,但这里是您如何解析它们以打印height每个部分值,因为这似乎是您在示例中尝试做的:

//Here you safely unwrap all of the sections as an array of dictionaries
if let allSections = response.result.value as? [[String : Any]] {

    //Here we will loop through the array and parse each dictionary
    for section in allSections {
        if let cost = section["cost"] as? Int, let name = section["name"] as? String, let outer = section["outer"] as? [String : Any], let height = outer["height"] as? Int, let width = outer["width"] as? Int {
            //Inside here you have access to every attribute in the section

            print(height)
        }
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Swift中使用Alamofire解析JSON响应

来自分类Dev

Swift / PHP如何使用Alamofire在UITableView中显示mysql数据(json)

来自分类Dev

Swift 3中的JSON解析

来自分类Dev

Alamofire中的responseJSON json解析

来自分类Dev

在Swift中使用Alamofire处理JSON响应

来自分类Dev

在Swift中使用Alamofire解析JSON响应

来自分类Dev

Alamofire,Swift 2.0,SwiftyJSON:将响应主体解析为JSON

来自分类Dev

Swift Alamofire JSON解析

来自分类Dev

无法使用AlamoFire和SwiftyJSON解析JSON

来自分类Dev

Swift 3 JSON解析

来自分类Dev

尝试在Swift中解析JSON,但出现错误

来自分类Dev

使用Swift 3和Alamofire在JSON网址中未显示任何应用程序

来自分类Dev

JSON解析Swift 3

来自分类Dev

使用Alamofire在Swift 3中进行Json解析

来自分类Dev

通过$ _POST从alamofire swift3的发布请求中检索json数据?

来自分类Dev

Alamofire JSON请求Swift 3

来自分类Dev

如何在没有任何第三方库的情况下在Swift 3.0中使用Alamofire解析JSON

来自分类Dev

无法使用Swift3 Alamofire(4.3.0),EVReflection(4.2.0)解析XML-与键值编码不兼容

来自分类Dev

在 Swift 3 中解析 JSON 时出错

来自分类Dev

使用未解析的标识符 'json' (Swift 3) (Alamofire)

来自分类Dev

使用 Swift 3 和 Alamofire 上传文件

来自分类Dev

Swift:使用模型中的 Alamofire 和私有变量访问 JSON 中的字典

来自分类Dev

尝试将 JSON 解析为 swift3 并显示到 UILabel 中

来自分类Dev

使用 Swift 3 进行 JSON 解析

来自分类Dev

如何在 Alamofire 请求 swift 3 中传递 JSON 对象

来自分类Dev

尝试使用 SwiftyJSON 使用 swift 3 解析 JSON 数据

来自分类Dev

在 swift 4 中使用 Alamofire 发出请求时,来自服务器的 JSON 解析错误

来自分类Dev

Alamofire Swift Json

来自分类Dev

Swift 4 使用 Alamofire 解析 JSON 以获得关键值的痛苦

Related 相关文章

  1. 1

    在Swift中使用Alamofire解析JSON响应

  2. 2

    Swift / PHP如何使用Alamofire在UITableView中显示mysql数据(json)

  3. 3

    Swift 3中的JSON解析

  4. 4

    Alamofire中的responseJSON json解析

  5. 5

    在Swift中使用Alamofire处理JSON响应

  6. 6

    在Swift中使用Alamofire解析JSON响应

  7. 7

    Alamofire,Swift 2.0,SwiftyJSON:将响应主体解析为JSON

  8. 8

    Swift Alamofire JSON解析

  9. 9

    无法使用AlamoFire和SwiftyJSON解析JSON

  10. 10

    Swift 3 JSON解析

  11. 11

    尝试在Swift中解析JSON,但出现错误

  12. 12

    使用Swift 3和Alamofire在JSON网址中未显示任何应用程序

  13. 13

    JSON解析Swift 3

  14. 14

    使用Alamofire在Swift 3中进行Json解析

  15. 15

    通过$ _POST从alamofire swift3的发布请求中检索json数据?

  16. 16

    Alamofire JSON请求Swift 3

  17. 17

    如何在没有任何第三方库的情况下在Swift 3.0中使用Alamofire解析JSON

  18. 18

    无法使用Swift3 Alamofire(4.3.0),EVReflection(4.2.0)解析XML-与键值编码不兼容

  19. 19

    在 Swift 3 中解析 JSON 时出错

  20. 20

    使用未解析的标识符 'json' (Swift 3) (Alamofire)

  21. 21

    使用 Swift 3 和 Alamofire 上传文件

  22. 22

    Swift:使用模型中的 Alamofire 和私有变量访问 JSON 中的字典

  23. 23

    尝试将 JSON 解析为 swift3 并显示到 UILabel 中

  24. 24

    使用 Swift 3 进行 JSON 解析

  25. 25

    如何在 Alamofire 请求 swift 3 中传递 JSON 对象

  26. 26

    尝试使用 SwiftyJSON 使用 swift 3 解析 JSON 数据

  27. 27

    在 swift 4 中使用 Alamofire 发出请求时,来自服务器的 JSON 解析错误

  28. 28

    Alamofire Swift Json

  29. 29

    Swift 4 使用 Alamofire 解析 JSON 以获得关键值的痛苦

热门标签

归档