class Aws::Json::Parser

def list(list, values, target = nil)

Returns:
  • (Array) -

Parameters:
  • target (Array, nil) --
  • values (Array) --
  • list (Seahorse::Model::Shapes::List) --
def list(list, values, target = nil)
  target = [] if target.nil?
  values.each { |value| target << parse_shape(list.member, value) }
  target
end

def map(map, values, target = nil)

Returns:
  • (Hash) -

Parameters:
  • values (Hash) --
  • map (Seahorse::Model::Shapes::Map) --
def map(map, values, target = nil)
  target = {} if target.nil?
  values.each do |key, value|
    target[key] = parse_shape(map.value, value)
  end
  target
end

def parse(shape, json, target = nil)

Returns:
  • (Hash) -

Parameters:
  • target (Hash, Array, nil) --
  • json (String) --
  • shape (Seahorse::Model::Shapes::Shape) --
def parse(shape, json, target = nil)
  parse_shape(shape, MultiJson.load(json, max_nesting: false), target)
end

def parse_shape(shape, value, target = nil)

Returns:
  • (Object) -

Parameters:
  • target (Hash, Array, nil) --
  • value (Object) --
  • shape (Seahorse::Model::Shapes::Shape) --
def parse_shape(shape, value, target = nil)
  if value.nil?
    nil
  else
    case shape
    when Seahorse::Model::Shapes::Structure then structure(shape, value, target)
    when Seahorse::Model::Shapes::List then list(shape, value, target)
    when Seahorse::Model::Shapes::Map then map(shape, value, target)
    when Seahorse::Model::Shapes::Timestamp then time(value)
    when Seahorse::Model::Shapes::Blob then Base64.decode64(value)
    else value
    end
  end
end

def structure(structure, values, target = nil)

Returns:
  • (Struct) -

Parameters:
  • target (Hash, nil) --
  • values (Hash) --
  • structure (Seahorse::Model::Shapes::Structure) --
def structure(structure, values, target = nil)
  target = Structure.new(structure.member_names) if target.nil?
  values.each do |serialized_name, value|
    member_name, shape = structure.member_by_location_name(serialized_name)
    if shape
      target[member_name] = parse_shape(shape, value)
    end
  end
  target
end

def time(value)

Returns:
  • (Time) -

Parameters:
  • value (String, Integer) --
def time(value)
  value.is_a?(Numeric) ? Time.at(value) : Time.parse(value)
end