成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

簡單實現Ruby解析Json

開發 后端
雖然我們在實際編程中用到Json的機會并不是很多,但是對于編程人員來說,有些東西還是需要了解的。比如Ruby解析Json的相關技巧。

Ruby語言的通途可謂是非常廣泛,而且都能使用簡單靈活的方式幫助我們實現許多功能需求。Ruby解析Json就可以用一種非常簡單的方法來實現。#t#

Ruby解析Json例子:

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

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

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

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

  1. module SafeJSON   
  2. require 'monitor'   
  3. def SafeJSON.build_safe_json   
  4. ret = nil   
  5. waiter = ''   
  6. waiter.extend(MonitorMixin)   
  7. wait_cond = waiter.new_cond   
  8. Thread.start do   
  9. $SAFE = 4   
  10. ret = Proc.new {|json|   
  11. eval(json.gsub(/(["'])/s*:/s*
    (['"0-9tfn/[{])/){"#{$1}=
    >#{$2}"}) }   
  12. waiter.synchronize do wait_cond.signal   
  13. end   
  14. end  
  15. waiter.synchronize do wait_
    cond.wait_while { ret.nil? } end   
  16. return ret   
  17. end   
  18. @@parser = SafeJSON.build_safe_json   
  19. # Safely parse the JSON input   
  20. def SafeJSON.parse(input)   
  21. @@parser.call(input)   
  22. rescue SecurityError   
  23. return nil   
  24. end  
  25. end  

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

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

rails通過RJS內置了對AJAX的支持,也許用到json的機會并不多,不過作為一種數據交換的方便格式,還是值的注意。

責任編輯:曹凱 來源: 博客園
相關推薦

2009-12-14 11:12:55

Ruby運行

2009-12-14 18:59:27

Ruby解析器

2009-12-14 13:47:28

Ruby簡單語法

2009-12-17 16:50:54

Ruby簡單編寫

2009-12-18 15:56:05

Ruby特殊語法

2009-12-14 17:14:08

Ruby文件操作

2009-12-15 15:55:43

Ruby模塊

2009-12-14 13:27:06

Ruby區間

2009-12-15 14:46:04

Ruby類常量

2009-09-07 15:27:04

C# MessageB

2009-12-17 17:37:42

Ruby on Rai

2009-12-17 13:57:15

Ruby關鍵字

2009-09-28 11:05:29

Ruby端口掃描

2009-12-18 17:29:02

Ruby創建XML

2009-12-18 16:00:29

Ruby獲取當前類名

2009-12-16 13:39:27

Ruby元編程

2009-12-17 13:37:24

Ruby代碼塊

2009-07-06 15:55:52

Servlet例子Ruby

2009-12-17 15:02:32

Ruby on Rai

2009-12-15 09:43:50

Ruby case w
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日本精品久久 | 精品一区在线免费观看 | 三级黄色片在线播放 | 毛片视频免费 | 中文字幕一区在线观看视频 | 中文精品视频 | 午夜手机在线视频 | av永久| 91综合网 | 国产在线中文字幕 | 在线色网址 | 欧美激情综合网 | 欧美性a视频 | 少妇一级淫片免费放播放 | 黄色在线免费网站 | 中文字幕亚洲精品 | aa级毛片毛片免费观看久 | 男女羞羞视频网站 | 欧美日韩精品久久久免费观看 | 欧美精品一区在线 | 国产一区二区久久 | 一级二级三级在线观看 | 国产探花 | 一级做a爰片性色毛片 | 久久国产麻豆 | 中文字幕乱码亚洲精品一区 | 国产69精品久久久久777 | 国产精品免费看 | 久久久久免费观看 | 国产精品久久久久久吹潮 | 国产一区二区三区久久久久久久久 | 国产欧美日韩精品一区二区三区 | 欧美日韩中文在线 | 波多野结衣在线观看一区二区三区 | 高清国产一区二区 | 中文字幕免费视频 | 欧美一区二区三区免费在线观看 | 91大神在线看 | 亚洲国产成人在线视频 | 99热热| 亚洲黄色网址视频 |