ios - 如何使用 SWIFT3 解析此 JSON

标签 ios json swift swift3

<分区>

这里我想通过url解析JSON。这是 url 上可用的实际 JSON 数据。所以我需要解析它并使用 Alamofire 在我的应用程序中读取。但是我做不到。

我的网址中的 JSON 数据。

[{"date":"2017-01-15","USDARS":"15.839023","USDCLP":"659.200012","USDVEF":"9.974801","USDCOP":"2943","USDPEN":"3.359497","USDBOB":"6.859692","USDPYG":"5780.799805","USDUYU":"28.660097","USDGTQ":"7.533499","USDCUP":"0.999845","USDCRC":"547.599976","USDHTG":"64.129997","USDJMD":"128.309998","USDDOP":"46.230097","USDETB":"22.459999","USDNGN":"314.999972","USDEGP":"18.900947","USDCDF":"1227.999527","USDTZS":"2216.999869","USDKES":"103.650002","USDSDG":"6.4077"},

    {"date":"2017-01-16","USDARS":"15.849011","USDCLP":"662.099976","USDVEF":"9.974797","USDCOP":"2936.800049","USDPEN":"3.367975","USDBOB":"6.860284","USDPYG":"5733.700195","USDUYU":"28.749899","USDGTQ":"7.545501","USDCUP":"0.999646","USDCRC":"547.099976","USDHTG":"64.129997","USDJMD":"128.179993","USDDOP":"46.230123","USDETB":"22.39805","USDNGN":"313.999947","USDEGP":"18.898647","USDCDF":"1225.999725","USDTZS":"2221.999959","USDKES":"103.650002","USDSDG":"6.407702"},

    {"date":"2017-01-17","USDARS":"15.882954","USDCLP":"656.299988","USDVEF":"9.974798","USDCOP":"2914","USDPEN":"3.3392","USDBOB":"6.860283","USDPYG":"5771.000017","USDUYU":"28.680621","USDGTQ":"7.533498","USDCUP":"0.999979","USDCRC":"547.080017","USDHTG":"64.120003","USDJMD":"128.580002","USDDOP":"46.200001","USDETB":"22.397891","USDNGN":"314.999989","USDEGP":"18.649708","USDCDF":"1225.000306","USDTZS":"2227.000108","USDKES":"103.750025","USDSDG":"6.407696"}]

我如何在 swift 3.0 中使用 Alamofire 读取它

下面是我实际尝试通过 url 解析上述 JSON 数据的内容。

Alamofire.request("myurl") .responseJSON { response in

            print("In Alamofire")
            if let arr = response.result.value as? [String:AnyObject]
            {

                if let arr = response.result.value as? [NSDictionary]
                {
                    let val1 = (arr["main"]["USDARS"] as? String)
                    print(val1)
                    //It does not print any thing.
                }
            }
        }

请帮帮我。我是新手。

最佳答案

我推荐使用 EVReflection ,您必须创建 2 个模型,然后您可以轻松管理结果。

模型:

class RootElementModel : EVObject{
    var main : [MainElement];
}

class MainElementModel : EVObject{
    var date : String = "";
    var USDARS : CGFloat = 0;
    var USDCLP : CGFloat = 0;
    var USDSDG : CGFloat = 0;
}

然后你可以使用如下:

Alamofire.request("url").responseString{
response in
    let resString = response.result.value
    let items = RootElementModel(json : resString).main
    print("first item USDARS = \(items[0].USDARS)")
}

更多使用示例和安装教程可以阅读Official Documentation .

关于ios - 如何使用 SWIFT3 解析此 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42160504/

相关文章:

ios - 与父级不同,从 iMessage 应用程序呈现的 View Controller 被 iMessage 顶部栏覆盖

android - 将 Flash 游戏导出为 "embedables"到 iOS 和 Android

ios - 如何在 ios 应用程序中的谷歌地图上添加多个引脚

javascript - 如何从 json 对象数组中删除整个 json 对象并将其写入文件?

swift - Firebase 通知和 Firebase 数据库功能不能在我的应用程序中同时工作

ios - 在自定义对象中存储 UIImage 失败

ios - 可变大小的 UITableViewCell

ios - 在注释数组上设置公开按钮

java - 从 InputStreamReader 创建 JSONObject

当对象名称为整数时,Java GSON 反序列化 JSON