class OneApi::JSONUtils

Public Class Methods

get(json, field) click to toggle source
# File lib/oneapi-ruby/utils.rb, line 17
def self.get(json, field)
    json = JSONUtils.get_json(json)

    if not field
        return nil
    end

    if field.instance_of? Symbol
        field = field.to_s
    end

    if field.include?('|') then
        field_parts = field.split('|')
        for field_part in field_parts
            value = JSONUtils.get(json, field_part.strip)
            if value
                return value
            end
        end
        return nil
    end

    result = nil
    parts = field.split('.')
    result = json
    for part in parts
        if result == nil
            return nil
        end

        if part.to_i.to_s == part
            # Int index => array:
            result = result[part.to_i]
        else
            # Hash:
            result = result[part]
        end
    end

    result
end
get_json(json) click to toggle source
# File lib/oneapi-ruby/utils.rb, line 9
def self.get_json(json)
    if json.instance_of? String
        return JSON.parse(json)
    end

    return json
end