2015-11-03 82 views
1

我有一個命令行應用程序。調用它的方法是:打印json到ruby程序文件

ruby comb.rb --format json 'journals.csv' 'articles.csv' 'authors.json' > full_articles.json 

基本上它是組合來自不同的文件(即您可以作爲參數傳遞)的信息。格式定義了輸出的格式。

數組到達json演示者類的數組(被剪切後的集合)。

我想插入一個新文件(我作爲最後一個參數傳遞的)一個json對象(一個對象數組)。

這是演示類的一部分:

def call 
     collection.each do |line| 
     puts as_json line 
     end 
    end 

    private 

    def as_json line 
     { 
     "issn" => line[0], 
     "title" => line[1], 
     "doi"  => line[2], 
     "author" => line[3], 
     "journal" => line[4] 
     } 
    end 

我到full_articles.json文件的輸入是一組物體而不是封裝的陣列的內部。你知道如何解決這個問題嗎?

+0

你能說清楚你的意思是「一組對象,但沒有封裝在一個數組中」。 ? – rohit89

+0

@ rohit89 文件看起來像: {...} \ n {...} \ n {...} –

+0

你希望它是作爲'[{...},{。 ..},{...}]'? – rohit89

回答

1

如果你想把它當作一個數組,你可以使用map

puts collection.map {|line| as_json line}.inspect 

puts collection.map {|line| as_json line}.to_json 
+0

與以前相同的輸出。 @ rohit89 –

+0

等等,這應該是在json? – rohit89

+0

它必須是Json格式,但不能字符串化。 @ rohit89 –

0

解決的辦法是:

puts collection.map {|line| as_json line}.inspect 

的方式@ rohit89它是正確的,但陣列沒有顯示。顯示惠特檢查它。