【问题标题】:How can I convert my JSON response's key from snakecase to camel case?如何将我的 JSON 响应密钥从 snake_case 转换为 camelcase?
【发布时间】:2014-07-31 15:08:36
【问题描述】:

我刚开始将 Rails 用于我的 Web 应用程序框架。现在我正在为一个测试项目开发一个 API。我希望我的 API 的 JSON 响应的键是驼峰而不是蛇形。我该怎么做?

我的 JSON 响应是这样的:

{"id":3,"name":"Bingo Gem", ..., "can_purchase":true,"shine":6,"created_at":"2014-07-31T06:34:37.917Z","updated_at":"2014-07-31T06:34:37.917Z","reviews":[]}

我预期的反应:

{"id":3,"name":"Bingo Gem", ..., "canPurchase":true,"shine":6,"createdAt":"2014-07-31T06:34:37.917Z","updatedAt":"2014-07-31T06:34:37.917Z","reviews":[]}

这是我的一个控制器:

module Api
    module V1
        class PermataController < ApplicationController
            respond_to :json

            def index
                respond_with Permatum.all, :include => [:reviews]
            end

        end
    end
end

和 routes.rb:

namespace :api, defaults: { format: 'json'} do
    namespace :v1 do
      resources :schedules
      resources :permata
    end    
  end

【问题讨论】:

  • 请记住,snake_case_is_a_lot_easier_to_read 比较ToTryingToReadCamelCase。 Java 程序员习惯于驼峰式,但它仅用于 Ruby 中的类和模块名称。变量是snake_case。我认为在尝试将 JSON 数据与您的代码从解析的 JSON 对象访问的内容相关联时,密钥应该保持生成状态以避免混淆。
  • 感谢您的提示。真的很有帮助。

标签: ruby-on-rails ruby json api


【解决方案1】:

在 Rails 中,String 类中有一个方法camelize。使用它:

"can_purchase".camelize(:lower) #=> "canPurchase"
"created_at".camelize(:lower)   #=> "createdAt"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2022-01-25
    • 1970-01-01
    • 2012-03-20
    相关资源
    最近更新 更多