2016-08-09 5 views
0

私はRubyには新しく、数行のデータ(実際にはJSON)を取得し、コマンドラインのテーブルに変換するプログラムを作成しました。プログラムに埋め込まれたJSONデータですべてうまく動作しますが、データをコマンドラインに貼り付けるようにユーザーに求めてもらいたいと思います。私はgetschompについて知っていますが、JSONは複数行/改行で書式設定されているため、コマンドラインに貼り付けると、各行が別々のエントリとして取得されます。私は答えがシンプルだと思うが、私はオンラインで情報を見つけるのに苦労している。私は一度にすべてをペーストしてすべてのキャリッジリターンを無視するだけです。複数の改行を含むコマンドラインへの入力を貼り付け

提案がありますか?

+0

これはよく似ていない質問です。それほどきれいな答えはありません:http://stackoverflow.com/questions/13839940/ruby-gets-that-works-over-multiple-lines - そうでなければ:それはユーザーにファイル名/パスの入力を求め、ファイルからjsonを読み込みますか? – trueunlessfalse

答えて

0

$stdinコンソールで入力する場合、複数の独立した複数行のオブジェクトを受け取るには、何らかの区切り文字が必要です。

これは、各JSONオブジェクト間に1つ以上の空白行を入れるか、ENDまたは--のようなマーカーにすることができます。

JSONオブジェクト内の空白行は有効ですが、通常はほとんどのJSONジェネレータでは生成されないため、JSONデータのフォーマット方法によって異なります。

UNIXモデルが強く、このようなことを行うことができるようにあなたを奨励することを忘れないでください:

processor < input.json 

またはこのようなこと:あなたがを介して複数のファイルを受信することができます

processor *.json 

ARGVを検索し、それらを順次処理します。それはこの混乱の多くを避ける。

関連する問題