ruby
1require 'json' 2require 'uri' 3require 'net/http' 4require './app/models/faculty' 5require './app/models/university' 6 7uri = URI.parse('https://www.dropbox.com/s/5jirjbyb1hca9rl/school.json?dl=0') 8json = Net::HTTP.get(uri) 9hash = JSON.parse(json) 10 11i = 0 12f = [] 13 14 15while i <= hash.length / 2 16 uni = University.create(name: hash[i]['大学']) 17 hash[i + 1]['学部'].map do |name| 18 if f.include?(name) 19 uni.faculties << Faculty.find_by(name: name) 20 else 21 uni.faculties << Faculty.create(name: name) 22 f.push(name) 23 end 24 end 25 i += 2 26end 27
jsonファイルをこのように読み込んで使おうと思うのですが、このコードを実行してみるとこのような謎の文字列が表示されるだけで値を取得できません。
一部分を抜粋したものです erf_tools/cpu_utils", "modules/constants/webtiming"], (function(mod){ mod.initialize_module({"ttv_at_dom_interactive": false, "is_dws2": false, "is_pagelet": true, "source_type": "web", "url": null, "subtypes": {"previewformat": "text", "metro": "sjc", "tti_flow": "/shared_link_render/file", "js_preloading": false, "shared_link_render": "file", "amp_tti_flow": "/shared_link_render/file"}, "log_time_to_interactive": true, "tti_at_dom_interactive": false, "is_dws": true, "is_early_ensemble": false, "log_time_to_view": true}); }), "require-tier-require-and-configure-modules/clean/web_timing_logger"],[["react"], (function(React){ /* dbx-global-decl: React is for devtools */ window.React = React;; }), "require-tier-react-element-set-global"]]]); })}, "sjc12b-rp11-2a", "65380af5ae87a8ed1d48522a1a09d795a2701fcc" )}); </script><script async="async" src="/page_success/end?dws_page_name=shared_link_file&path=%2Fs%2F5jirjbyb1hca9rl%2Fschool.json&request_id=a9c4e22a64b726436e7910e9bfb079ac&time=1600877960" nonce="RX4E+jIA8Ngnx/6kUQ8h"></script></body></html><!--status=200-->'
エラーメッセージがないので調べることもできず困っています。知識のある方がいらっしゃれば教えていただきたいです。
指定URLで開くとドロップボックスの画面が開いて中にJSONのデータが表示されます。
RubyでこのURLで送信した際結果JSONのデータが取得されますか?
すみません、2行目の意味がわかりません
>uri = URI.parse('https://www.dropbox.com/s/5jirjbyb1hca9rl/school.json?dl=0')
>json = Net::HTTP.get(uri)
このjson変数の中身は本当にjson形式の値のみでしたか?
そうだと思います
Dropbox上のファイルをダウンロードをする際は「Dropbox API」が必要なはずですが...