Tag: json

如何使用多个{‘not found’}干扰方法?

我正在尝试优雅地处理以下错误的JSON,其中Hash#fetch似乎不是一个选项( 使用Hash #fetch优雅地处理错误的JSON ): 实时应用: http : main_controller.rb ( main_controller.rb ) 显然,最好的方法是在每个参数的末尾添加{ ‘not found’ } : mashie.products.each do |product| product.extend Hashie::Extensions::DeepFetch product.name = product.deep_fetch :name { ‘not found’ } product.brand = product.deep_fetch :brand, :name { ‘not found’ } product.price = product.deep_fetch :sale_price { ‘not found’ } product.currency = product.deep_fetch :currency { ‘not found’ } @products […]

使用HTTParty检索JSON时“嵌套太深”错误

我正在为reddit api编写一个非常简单的代理包装器,所以我可以创建跨域JSONP请求(reddit不允许JSONP调用我的知识)。 我正在使用HTTParty gem来调用并检索响应,我立即将其呈现为json。 到目前为止,我正在检索subreddit json,这是我的路线: match “r/:name” => “api#subreddit” ……这是我的控制器动作: def subreddit render :json => HTTParty.get(“http://www.reddit.com/r/” + params[:name] + “/.json”), :callback => params[:callback] end 例如,返回的JSON类似于: http : //www.reddit.com/r/pics/.json 我的问题是当我试图获取特定线程的注释时。 我的路线是这样的: match “r/:name/comments/:id” => “api#comments” ……我的控制器动作如下: def comments render :json => HTTParty.get(“http://www.reddit.com/r/” + params[:name] + “/comments/” + params[:id] + “/.json”), :callback => params[:callback] end 我想要的JSON可以在这里看到: […]

如何将带有密钥的json文件上传到Heroku

我正在构建一个rails应用程序,它使用适用于Ruby的Google Api客户端库从Google Analytics中提取数据。 我正在使用OAuth2,可以在本地计算机上开发所有工作。 我的问题是该库使用下载的文件client_secrets.json来存储两个密钥。 问题:我正在使用Heroku,需要一种方法将文件送到生产服务器。 由于项目是公开的,我不想将此文件添加到我的github仓库。 如果有办法暂时将文件添加到git,请推送到Heroku,然后从git中删除就可以了。 我的感觉是密钥将在提交中,并且很难阻止在github上显示。 尝试:到目前为止,我可以告诉你不能通过Bash控制台向Heroku发送文件。 我相信当你这样做时你得到一个新的Dyno,你添加的任何东西都只是暂时的。 我试过这个但是无法让SCP正常工作,所以不是百分之百地确定这一点。 尝试:我查看了将JSON文件存储在Environment或Config Var中,但无法使其工作。 如果有人有想法,这似乎是最好的方式。 当ruby将JSON转换为字符串或哈希时,我经常遇到麻烦,所以我可能只需要指导。 试过:另外我试图找出一种方法来从JSON文件中提取密钥,将它们放入Config Vars,并将JSON文件添加到git。 我想不出把ENV[“KEY”]放在JSON文件中的方法。 示例代码 Google库有一个加载JSON文件以创建授权客户端的方法。 然后客户端获取令牌(或提供授权URL)。 client_secrets = Google::APIClient::ClientSecrets.load(‘client_secrets.json’) auth_client = client_secrets.to_authorization **请注意,Google页面上的示例未显示文件名,因为它使用已设置为路径的默认ENV Var 我认为如果ClientSecrets.load()方法只接受JSON,一个可以进入Config Var的字符串或哈希,这将会更加容易。 不幸的是,似乎总是想要一个文件路径。 当我向它提供JSON,字符串或哈希时,它会爆炸。 我看到有人在这里用p12键来解决这个问题 ,但我不确定如何在我的情况下复制它。 没有试过:我唯一的另一个(除了转移到AWS)是将JSON文件放在AWS上并在需要时让它拉出来。 我不确定这是否可以动态完成,或者当rails服务器启动时是否需要下拉文件。 似乎工作太多,但此时我花了几个小时才准备尝试。 这是我正在处理的具体控制器: https : //github.com/dladowitz/slapafy/blob/master/app/controllers/welcome_controller.rb

JSON对象操作

假设我们有以下描述Person的JSON对象: { “firstName”: “John”, “lastName”: “Smith”, “age”: 25, “address”: { “streetAddress”: “21 2nd Street”, “city”: “New York”, “state”: “NY”, “postalCode”: “10021” }, “phoneNumber”: [ { “type”: “home”, “number”: “212 555-1234” }, { “type”: “fax”, “number”: “646 555-4567” } ] } 有人可以建议在Rails 3中操作前一个对象的最优雅和最有效的方法吗? 我希望能够: 添加“firstname”,“lastname”等其他元素。 删除现有元素 更改元素而不删除它或添加新元素。 (例如,将名字改为“尼克”) 提前致谢。 PS。 我更喜欢在Controller中操作它!

来自json数据的Padrino模型

我一直在看Padrino正在进行的项目,这看起来非常合适,因为我理想的是希望支持以json的forms发送和接收的数据。 但是我想知道是否有内置的自动助手或function来从后请求(或其他请求)获取数据并将该数据放入模型而无需为每个模型编写自定义逻辑来处理数据? 在博客示例中,他们简要地略过了这一点,但似乎只是将参数数据传递给他们的Post模型的启动器,让我假设它只是神奇地知道如何处理所有事情……不确定是否是这种情况,并且如果是这样的话Padrinofunction或ActiveRecord(就像他们在示例中看起来那样)。 我知道我可以使用ActiveSupport进行基于JSON的编码/解码,但这只是给我一个原始对象,并且由于每个模型的存储问题都在主模型类中,我需要使用mixin或其他东西来实现这一点,这似乎讨厌。 这样做有没有好的模式/function呢?

在Rails中使用ActiveModel :: Serializer – JSON数据在json和index响应之间有所不同

我正在使用active_model_serializers gem来控制序列化数据,并看到一些奇怪的行为。 我的代码看起来像这样: 模型和序列化器 class User include Mongoid::Document field :first_name, :type => String field :last_name, :type => String def full_name first_name + ” ” + last_name end end class UserSerializer < ActiveModel::Serializer attributes :id, :first_name, :last_name, :full_name end 调节器 class UsersController < ApplicationController respond_to :json, :html def index @users = User.all respond_with @users end end […]

JSON :: ParserError:757:'{的意外令牌

当前的哈希是 {\”report_name\”=>\”Study/Control: ABIRATERONE ACETATE – 20151413355\”, \”left_mue_start_date\”=>\”02-26-2015\”, \”left_mue_end_date\”=>\”03-19-2015\”, \”right_mue_start_date\”=>\”02-26-2015\”, \”right_mue_end_date\”=>\”03-19-2015\”, \”report_formulary_id\”=>\”,7581\”, \”mue\”=>\”true\”, \”mue_type\”=>\”study/control\”, \”chain_id\”=>\”1\”, \”left_mue_formulary_ids\”=>[\”7581\”], \”action\”=>\”create_report\”, \”controller\”=>\”informatics\”, \”user_id\”=>339} 现在我需要将其转换为适当的哈希值 {“report_name” => “Study/Control: ABIRATERONE ACETATE – 20151413355”} 所以我试图用JSON.parse来获取它,但我得到的错误如下: JSON::ParserError: 757: unexpected token at ‘{ 所以,如果有人知道这一点,请帮助我。 我正在使用Rails 3.2

获取谷歌搜索结果的正确方法是什么?

我想获得谷歌上特定关键字搜索的所有搜索结果。 我已经看到了刮痧的建议,但这似乎是一个坏主意。 我见过Gems(我计划使用ruby),它会刮掉并使用API​​。 我也看到了使用API​​的建议。 有谁知道现在最好的方法吗? API不再受支持,我看到人们报告他们无法获得无法使用的数据。 gem是帮助解决这个问题还是不解决? 提前致谢。

如何使用Rack接收JSON对象

我有一个非常简单的Ruby Rack服务器,如: app = Proc.new do |env| req = Rack::Request.new(env).params p req.inspect [200, { ‘Content-Type’ => ‘text/plain’ }, [‘Some body’]] end Rack::Handler::Thin.run(app, :Port => 4001, :threaded => true) 每当我使用JSON对象向服务器发送POST HTTP请求时: { “session”: { “accountId”: String, “callId”: String, “from”: Object, “headers”: Object, “id”: String, “initialText”: String, “parameters”: Object, “timestamp”: String, “to”: Object, “userType”: String } } […]

在JBuilder中生成嵌套的JSON数组

我在轨道上的ruby中有这个型号 分支模型:has_many:菜单 class Branch < ActiveRecord::Base belongs_to :place belongs_to :city has_many :menus , dependent: :destroy belongs_to :type_place end 菜单型号:has_many:产品 class Menu < ActiveRecord::Base attr_accessible :description, :product_name, :price, :category_id, :menu_id belongs_to :branch has_many :products, dependent: :destroy end 产品型号: class Product < ActiveRecord::Base belongs_to :menu belongs_to :category end 在视图中使用以下代码: if @condition json.code :success json.branch do json.array!(@branches) do […]