rubyを用いて、jsonファイルを加工するプログラムを作成したいです。
やりたいことと致しましては
2つ以上のファイルのjsonファイルをして必要なデータのみ抽出し、
別のファイルとして出力したいです。(テキストファイルなり、csv、json等)
以下にあるファイル名でいうと、
hoge1.jsonファイルの"name":"函館朝市"
をトリガーとし、
hoge2.jsonの
"name":"函館朝市"の"ken"である"北海道"を取得したいです。
そしてテキストファイルに以下のように出力したいです。
ken:北海道
name:函館朝市
実際にやろうとすることは、もっとデータが多いため、複雑になっております。
今回は、あくまでシンプルにするため、このような形態にしております。
そのため別の例を出すと、
"name":"名古屋市"という情報から、
"ken":"名古屋"
というのを取得したりしたいです。
データベースのカラムのような要領で、同じカラムをトリガーとして、関連する情報を
取得するプログラムをrubyで作成したいのですが、やり方がわかりません。
もしご存知の方は、知恵をお貸し頂けないでしょうか?
わかりにくいかと思いますので、質問して頂けると回答致します。
また、私は最近API等に興味があるため、
こういうのを応用して、Jsonを用いて、データの加工などをやっていきたいと考えております。
皆様はそういうのをやられたりしますか?
もしやられていたら、どういうことをなさっていたのかもお答え頂けると嬉しいです。
今後の参考にしていきたいと考えております。
ファイル名;hoge1.json
{
"marker":[
{"lat":41.772596,"lng":140.725261,"name":"函館朝市"},
{"lat":41.796864,"lng":140.756965,"name":"五稜郭"},
{"lat":41.772912,"lng":140.816231,"name":"函館空港"}
]
}
ファイル名;hoge2.json
{
"hokkaido":[
{"name":"函館朝市"},
{"ken":"北海道"},
{"zinkou":200000}
]
}
追記
皆様、素晴らしいコード有難う御座います。
こんなコードがかければなと圧巻しております。
さて、追加で大変恐縮ですが、今回、JSONを以下のようにコードの中に直接代入する形で記述されておりますが、hoge1.json といったファイル名をコードに入れて、その中身を markers = JSON.parse というふうにできないでしょうか?
イメージとしては、以下のような感じです。
markers = JSON.parse(hoge1.json)
実際に扱うJSONは30行ほどあり、かつ、日によって増えていくため、
ファイル名から中身を取り出して、パースする処理をしたいです。
もし宜しければ、再度お知恵をお借りできないでしょうか?
何卒宜しくお願いします。
('{
"marker":[
{"lat":41.772596,"lng":140.725261,"name":"函館朝市"},
{"lat":41.796864,"lng":140.756965,"name":"五稜郭"},
{"lat":41.772912,"lng":140.816231,"name":"函館空港"},
{"lat":1.000000,"lng":1.000000,"name":"千葉市"}
]
}')
回答4件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。