2015-10-02 108 views
0

我試着去獲得「查詢」JSON解析在Ruby on Rails的

[ 
    { 
     "query"=> "cat", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "dream catcher", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat ears", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat collar", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat costume", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat shirt", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat ring", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat toys", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat bed", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cheshire cat", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "query"=> "cat tree", 
     "search_type_names"=> [ 
      "in Handmade" 
     ], 
     "search_types"=> [ 
      "handmade" 
     ] 
    }, 
    { 
     "link"=> "/search/shops?search_query=cat", 
     "query"=> "find shop names containing cat", 
     "search_type_names"=> [], 
     "search_types"=> [] 
    } 
] 
+0

我試過json [「查詢」],它返回從整數到字符串的轉換錯誤.... –

+0

您的輸入是一個數組。如果你想要它是一個字符串,你需要引號。將所有輸入分配給一個變量(例如,'arr = [...]'或'str =「...」')是有幫助的。這使得那些提供答案或發表評論的人可以參考變量而不必定義它。另外,當您報告異常時,請特別注意異常消息和引發它的行。 –

+0

將您的輸入數據減少到最低限度,以顯示您看到的問題。除此之外的任何事情只會浪費我們的時間幫助你。另外,看起來你希望我們爲你編寫代碼。你寫了什麼? –

回答

1

自認爲JSON是一個數組,你必須首先選擇從數組中的元素之一,然後將該值使用密鑰的哈希提取「查詢」

json.first['query'] 
json[5]['query'] 
2

看來你已經轉換的JSON字符串到一個數組,我稱之爲arr,在這種情況下:

arr.map { |h| h["query"] } 
    #=> ["cat", "dream catcher", "cat ears", "cat collar", "cat costume", 
    # "cat shirt", "cat ring", "cat toys", "cat bed", "cheshire cat", 
    # "cat tree", "find shop names containing cat"] 
0

json_array是您所JSON的數組,你可以得到query s此方式太:

json_array.each { |a| puts a['query'] } 
0

你可以試試this.Lets你有a JSON

irb(main):151:0> a.collect{|h| h["query"]} 
=> ["cat", "dream catcher", "cat ears", "cat collar", "cat costume", "cat shirt", "cat ring", "cat toys", "cat bed", "cheshire cat", "cat tree", "find shop names containing cat"] 
的的數組