主頁 > 知識庫 > Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實(shí)例教程

Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實(shí)例教程

熱門標(biāo)簽:北京語音電銷機(jī)器人價格 浦東上海400開頭的電話申請 買了外呼系統(tǒng)不想用了怎么辦 邯鄲外呼調(diào)研線路 開封百應(yīng)電銷機(jī)器人聯(lián)系方式 真人語音電銷機(jī)器人系統(tǒng) 武漢呼叫中心外呼系統(tǒng)線路商 電話機(jī)器人電話卡封號怎么辦 樂昌電話機(jī)器人

Ruby解析JSON
Ruby解析Json例子:

json = '["a", "B", "C"]'
puts "Unsafe #{unsafe_json
(json).inspect}" 
#輸出Unsafe 
["a", "B", "C"] 

Ruby解析Json把上面的json字符串解析成Array。這樣的方法并不安全,比如:

json = 'puts "Danger 
Will Robinson"' 
puts "Unsafe #{unsafe_json
(json).inspect}" 

又該輸出什么呢?很遺憾,解析不出什么東西,跳出一個警告:warning: character class has `[' without escape安全的方法如下:

module SafeJSON  
require 'monitor'  
def SafeJSON.build_safe_json  
ret = nil  
waiter = ''  
waiter.extend(MonitorMixin)  
wait_cond = waiter.new_cond  
Thread.start do  
$SAFE = 4  
ret = Proc.new {|json|  
eval(json.gsub(/(["'])/s*:/s*
(['"0-9tfn/[{])/){"#{$1}=>#{$2}"}) }  
waiter.synchronize do wait_cond.signal  
end  
end 
waiter.synchronize do wait_
cond.wait_while { ret.nil? } end  
return ret  
end  
@@parser = SafeJSON.build_safe_json  
# Safely parse the JSON input  
def SafeJSON.parse(input)  
@@parser.call(input)  
rescue SecurityError  
return nil  
end 
end 

包含這個Module,你就可以這樣使用Ruby解析Json:

peoples=SafeJSON.parse('
{"peoples":[{"name":"site120","
email":"site120@163.com","sex":"男"},
{"name":"site120_2","email":"site1
20@163.com_2","sex":"男_2"}]}') 
puts peoples["peoples"][1]["name"]
 #輸出site120_2 

 
Ruby on Rails中
rails通過RJS內(nèi)置了對AJAX的支持,也許用到j(luò)son的機(jī)會并不多,不過作為一種數(shù)據(jù)交換的方便格式,還是值的注意,下面

這里使用到Json插件,安裝命令

gem install json_pure

使用例子:

 require "open-uri"
 require 'json'

 def index
  uri = '*****'
  response = nil
  begin
   open(uri) do |http|
    response = http.read
   end
   @json = JSON::parse(response)
  rescue => text
   # 異常處理
   logger.error("GetMailListserror=" + text)
   flash.now[:error] = '獲取郵件列表失敗。'
  end
 end

這里json解析器需要json格式的key必須帶引號,如果沒有引號的話會解析出現(xiàn)異常。

您可能感興趣的文章:
  • 詳解Python使用simplejson模塊解析JSON的方法
  • 使用Java構(gòu)造和解析Json數(shù)據(jù)的兩種方法(詳解一)
  • JAVA使用Gson解析json數(shù)據(jù)實(shí)例解析
  • JS中Eval解析JSON字符串的一個小問題
  • Android中g(shù)son、jsonobject解析JSON的方法詳解
  • iOS開發(fā)使用JSON解析網(wǎng)絡(luò)數(shù)據(jù)
  • JavaScript解析任意形式的json樹型結(jié)構(gòu)展示

標(biāo)簽:松原 石嘴山 淄博 宜春 河北 鄂州 自貢 六安

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實(shí)例教程》,本文關(guān)鍵詞  Ruby,和,Rails,中,解析,JSON,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實(shí)例教程》相關(guān)的同類信息!
  • 本頁收集關(guān)于Ruby和Ruby on Rails中解析JSON格式數(shù)據(jù)的實(shí)例教程的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章