SWIFT3を使用してこのJSONを解析する方法

user7261225

ここでは、URLを介してJSONを解析したいと思います。これは、URLで利用可能な実際のJSONデータです。そのため、解析して、Alamofireを使用してアプリで読み取る必要があります。しかし、私はそれをすることができません。

私のURLの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"}]

swift3.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.
                }
            }
        }

私を助けてください。初めてです。

取る
Alamofire.request(url).responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
})

typealias JSONStandard = [String : AnyObject]

func parseData(JSONData : Data) {
    do {
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
        if let items = readableJSON["main"] as? [JSONStandard] {
            for i in 0..<items.count  {
                let item = items[i]
                    if let USDARS = item["USDARS"]
                        print(USDARS)
            }
        }
    } catch {
        print(error)
    }
}

特定の値を印刷するには、次の2つの方法で行うことができます。

何かを検索するたびに、新しいAlamofireリクエストを作成します。

let whatToSearchFor: String = "13-02-2017"
Alamofire.request(url).responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
})

typealias JSONStandard = [String : AnyObject]

func parseData(JSONData : Data) {
    do {
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
        if let items = readableJSON["main"] as? [JSONStandard] {
            for i in 0..<items.count  {
                let item = items[i]
                    guard item["date"] != nil else { print("nil"); return}
                    guard item["USDARS"] != nil else { print("nil"); return}
                    if item["date"] == whatToSearchFor {
                        print(item["USDARS"])
                    }
            }
        }
    } catch {
        print(error)
    }
}

すべての値を含む辞書を作成し、検索した辞書を印刷します。

let dict = [String : String]

Alamofire.request(url).responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
})

typealias JSONStandard = [String : AnyObject]

func parseData(JSONData : Data) {
    do {
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
        if let items = readableJSON["main"] as? [JSONStandard] {
            for i in 0..<items.count  {
                let item = items[i]
                guard item["date"] != nil else { print("nil"); return}
                guard item["USDARS"] != nil else { print("nil"); return}
                let date = item["date"]
                let USDARS = item["USDARS"]
                dict[date] = USDARS
            }
        }
    } catch {
        print(error)
    }
}
let whatToSearchFor: String = "13-02-2017"
print(dict[whatToSearchFor])

JSONに「メイン」がない場合に編集します。

let whatToSearchFor: String = "13-02-2017"
Alamofire.request(url).responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
})

typealias JSONStandard = [String : AnyObject]

func parseData(JSONData : Data) {
    do {
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
        if let items = readableJSON {
            for i in 0..<items.count  {
                let item = items[i]
                    guard item["date"] != nil else { print("nil"); return}
                    guard item["USDARS"] != nil else { print("nil"); return}
                    if item["date"] == whatToSearchFor {
                        print(item["USDARS"])
                    }
            }
        }
    } catch {
        print(error)
    }
}

または:

let dict = [String : String]

Alamofire.request(url).responseJSON(completionHandler: {
        response in
        self.parseData(JSONData: response.data!)
})

typealias JSONStandard = [String : AnyObject]

func parseData(JSONData : Data) {
    do {
        var readableJSON = try JSONSerialization.jsonObject(with: JSONData, options: .mutableContainers) as! JSONStandard
        if let items = readableJSON {
            for i in 0..<items.count  {
                let item = items[i]
                guard item["date"] != nil else { print("nil"); return}
                guard item["USDARS"] != nil else { print("nil"); return}
                let date = item["date"]
                let USDARS = item["USDARS"]
                dict[date] = USDARS
            }
        }
    } catch {
        print(error)
    }
}
let whatToSearchFor: String = "13-02-2017"
print(dict[whatToSearchFor])

基本的にmain消えます。またas? [JSONStandard]readableJSONとして定義されてJSONStandardいるためです

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

NumberFormatter()を使用してswift3でmaximumFractionDigitsを設定する方法

分類Dev

AWSRekognitionを使用してSwift3で顔を比較する方法

分類Dev

JSON.Netを使用してこのJSONを解析する方法は?

分類Dev

新しいSwift3とAlamofireを使用したJSONの解析

分類Dev

Alamofireを使用したSwift3でのJson解析

分類Dev

Xcode8とSwift3を使用して解析中のユーザーの場所を更新する

分類Dev

jsonをswift3の配列に解析する

分類Dev

Alamofireを使用してSwift3でJSONを解析しようとしています

分類Dev

Swift3でプロキシを使用してURLSessionを使用する方法

分類Dev

Swift3を使用して大きなJSONをレルムに保存する

分類Dev

swift3を使用してこのJSONの複雑なディープディクショナリデータを解析するにはどうすればよいですか

分類Dev

Swift3を使用してgooglemapinfoWindowをカスタマイズする方法

分類Dev

forループを使用してSwift3でInt配列を作成する方法

分類Dev

Swift3でUITextFieldsを使用してスイッチ式を作成する方法

分類Dev

userDefualts を使用して出力された配列を保存する方法 (swift3)

分類Dev

Swift3でunsafeDowncastを使用する方法

分類Dev

swift3でautocompleteBoundsを使用する方法

分類Dev

Swift3でNSTimeIntervalを使用する方法

分類Dev

JSON.serializerを使用してSwiftでJSONを解析する方法

分類Dev

JSON条件式を使用してこのJSONを解析する方法は?

分類Dev

Swift3を使用してParseの1行を削除します

分類Dev

Jacksonを使用してこのJSONを読み取って解析する方法は?

分類Dev

Jacksonを使用してこのJSONを読み取って解析する方法は?

分類Dev

Swift3のSDWebImageを使用してUITableViewCellでImageViewを適切に設定する方法

分類Dev

Swift3を使用してFirebaseDatabaseとのインターネット接続を検出する方法は?

分類Dev

Locksmith Swift3を使用してデータの一部を更新する

分類Dev

GSONを使用してこのタイプのjsonを解析する方法は?

分類Dev

KotlinのVolleyを使用してこのJSON応答を適切に解析する方法

分類Dev

データを抽出するためのswift3によるJSON解析

Related 関連記事

  1. 1

    NumberFormatter()を使用してswift3でmaximumFractionDigitsを設定する方法

  2. 2

    AWSRekognitionを使用してSwift3で顔を比較する方法

  3. 3

    JSON.Netを使用してこのJSONを解析する方法は?

  4. 4

    新しいSwift3とAlamofireを使用したJSONの解析

  5. 5

    Alamofireを使用したSwift3でのJson解析

  6. 6

    Xcode8とSwift3を使用して解析中のユーザーの場所を更新する

  7. 7

    jsonをswift3の配列に解析する

  8. 8

    Alamofireを使用してSwift3でJSONを解析しようとしています

  9. 9

    Swift3でプロキシを使用してURLSessionを使用する方法

  10. 10

    Swift3を使用して大きなJSONをレルムに保存する

  11. 11

    swift3を使用してこのJSONの複雑なディープディクショナリデータを解析するにはどうすればよいですか

  12. 12

    Swift3を使用してgooglemapinfoWindowをカスタマイズする方法

  13. 13

    forループを使用してSwift3でInt配列を作成する方法

  14. 14

    Swift3でUITextFieldsを使用してスイッチ式を作成する方法

  15. 15

    userDefualts を使用して出力された配列を保存する方法 (swift3)

  16. 16

    Swift3でunsafeDowncastを使用する方法

  17. 17

    swift3でautocompleteBoundsを使用する方法

  18. 18

    Swift3でNSTimeIntervalを使用する方法

  19. 19

    JSON.serializerを使用してSwiftでJSONを解析する方法

  20. 20

    JSON条件式を使用してこのJSONを解析する方法は?

  21. 21

    Swift3を使用してParseの1行を削除します

  22. 22

    Jacksonを使用してこのJSONを読み取って解析する方法は?

  23. 23

    Jacksonを使用してこのJSONを読み取って解析する方法は?

  24. 24

    Swift3のSDWebImageを使用してUITableViewCellでImageViewを適切に設定する方法

  25. 25

    Swift3を使用してFirebaseDatabaseとのインターネット接続を検出する方法は?

  26. 26

    Locksmith Swift3を使用してデータの一部を更新する

  27. 27

    GSONを使用してこのタイプのjsonを解析する方法は?

  28. 28

    KotlinのVolleyを使用してこのJSON応答を適切に解析する方法

  29. 29

    データを抽出するためのswift3によるJSON解析

ホットタグ

アーカイブ