data_importer/lib/json_helper.rb
2024-08-21 12:24:35 -05:00

36 lines
842 B
Ruby

# frozen_string_literal: true
require 'rest-client'
class JsonHelper
def self.deep_transform_keys(json_hash)
if json_hash.is_a? Array
json_hash.map { |jh| symbolize_names_snake_case(jh) }
else
symbolize_names_snake_case(json_hash)
end
end
def self.symbolize_names_snake_case(json_hash)
json_hash.deep_transform_keys { |k| k.to_s.underscore.to_sym }
end
def self.fix_null_byte(s)
s.gsub("`\u0000`", "null_byte")
end
def self.read_json_from_file(filename)
JSON.parse(File.read(filename, :encoding => 'utf-8'), symbolize_names: true)
end
def self.read_json_from_url(url)
r = RestClient::Request.execute(
:method => :get,
:url => url
)
if r.code == 200
JSON.parse(r.body, symobilize_names: true)
else
puts "Http Code: #{r.code}"
end
end
end