

bitFlyerのAPIで、ある値の情報を抜き取りたいです。

APIの`getchildorders`の中にある`child_order_state`の値を取り出して、`COMPLETED`の場合は`yes`と表示させたいのですが、エラーになってします。宜しくお願い致します。

エラーコード

> 25:in `': uninitialized constant JSON (NameError)

サンプルコード

[code]

    require "net/http"
    require "uri"
    require "openssl"
    key = "ほげほげ"
    secret = "ほげほげ"
    timestamp = Time.now.to_i.to_s
    method = "GET"
    uri = URI.parse("https://api.bitflyer.jp")
    uri.path = "/v1/me/getchildorders"
    uri.query = "product_code=FX_BTC_JPY&count=after&after=ほげほげ"
    text = timestamp + method + uri.request_uri
    sign = OpenSSL::HMAC.hexdigest(OpenSSL::Digest.new("sha256"), secret, text)
    options = Net::HTTP::Get.new(uri.request_uri, initheader = {
    "ACCESS-KEY" => key,
    "ACCESS-TIMESTAMP" => timestamp,
    "ACCESS-SIGN" => sign,
    });
    https = Net::HTTP.new(uri.host, uri.port)
    https.use_ssl = true
    response = https.request(options)
    puts response.body
    
    json = Net::HTTP.get(uri)
    getchildorders = JSON.parse(json)
    
    puts getchildorders["child_order_state"]
    getchildorders["child_order_state"] = COMPLETED
    puts yes
    
[/code]


CC BY-SA 3.0
2018-02-22T01:08:02.583
41910
2020-01-11T17:30:15.107
2020-01-11T17:30:15.107
3060
27495
question
ruby json
JSON.parse で uninitialized constant JSON というエラーが出る


JSON クラスは json ライブラリを読み込まないと使えません。  
プログラムの先頭の方に次のように書いておけばいいと思います。

[code]

    require "json"
    
[/code]


CC BY-SA 3.0
2018-02-22T05:40:42.557
41917
2018-02-22T05:40:42.557
3249
41910
answer