Convert Amazon XML to JSON in Rails and parse with OpenStruct



How'd I go about converting Amazon's XML to JSON with Ruby on Rails and then parse it with OpenStruct?



raw_products = request.item_search(query: params)
hashed_products = raw_products.to_h

@products = []

hashed_products['ItemSearchResponse']['Items']['Item'].each do |item|
product = OpenStruct.new
product.name = item['ItemAttributes']['Title']
product.url = item['DetailPageURL']
product.image_url = item['LargeImage']['URL']

@products << product
end



Having little luck with this (undefined method 'to_sym' for #<Hash:0x000000028601f8>):



converted_products = JSON.parse(raw_products.to_json)

converted_products.map do |product|
product = OpenStruct.new(product)
product.name = item['ItemAttributes']['Title']
product.url = item['DetailPageURL']
image = product.images.find { |i| i["largeImage"] == 'URL' }
product.image = OpenStruct.new(image)
product
end



Example XML:



No comments:

Post a Comment