x
'),c.close();var d=c.documentElement.scrollHeight>c.body.scrollHeight;return a.parentNode.removeChild(a),b=d?document.documentElement:document.body}var b=null;Object.defineProperty(document,"scrollingElement",{get:a})}();var b;return{afterOpen:function(c){c||(b=document.scrollingElement.scrollTop,document.body.classList.add(a),document.body.style.top=-b+"px")},beforeClose:function(c){c||(document.body.classList.remove(a),document.scrollingElement.scrollTop=b)},getScrollTop:function(){return b}}}("popup-open"); 
  • 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Ruby和Ruby on Rails中解析JSON格式数据的实例教程

    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内置了对AJAX的支持,也许用到json的机会并不多,不过作为一种数据交换的方便格式,还是值的注意,下面

    这里使用到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必须带引号,如果没有引号的话会解析出现异常。

    您可能感兴趣的文章:
    • 详解Python使用simplejson模块解析JSON的方法
    • 使用Java构造和解析Json数据的两种方法(详解一)
    • JAVA使用Gson解析json数据实例解析
    • JS中Eval解析JSON字符串的一个小问题
    • Android中gson、jsonobject解析JSON的方法详解
    • iOS开发使用JSON解析网络数据
    • JavaScript解析任意形式的json树型结构展示
    上一篇:Ruby的XML格式数据解析库Nokogiri的使用进阶
    下一篇:Jekyll静态网站后台引擎使用教程
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    Ruby和Ruby on Rails中解析JSON格式数据的实例教程 Ruby,和,Rails,中,解析,JSON,