On Wednesday, January 30, 2019 at 5:16:59 PM UTC-5, Colin Law wrote: > > On Wed, 30 Jan 2019 at 22:12, Colin Law <cla...@gmail.com <javascript:>> > wrote: > > > > On Wed, 30 Jan 2019 at 22:09, fugee ohu <fuge...@gmail.com <javascript:>> > wrote: > > > > > > > > > > > > On Wednesday, January 30, 2019 at 5:02:17 PM UTC-5, Colin Law wrote: > > >> > > >> On Wed, 30 Jan 2019 at 21:56, fugee ohu <fuge...@gmail.com> wrote: > > >> > ... > > >> > Everything in the unparsed resonse body that I want is between [ > and ] I have to gsub it out > > >> > > >> > > >> No you don't. After you get parsed_obj["results] (which is an array, > > >> that's what the [] mean) then you can get the first product by > > >> parsed_obj["results"][0]["productId"] > > >> It is just an array. You have met ruby arrays haven't you? > > >> > > >> I am rapidly losing the will to live. > > >> > > >> Colin > > > > > > > > > The response body isn't JSON.parse parsable as is it has to be gsub'd > and chomped first before I can run JSON.parse My original gsub wasn't right > it wasn't removing the end that follows ] > > > JSON::ParserError: 784: unexpected token at > 'myscript.js({"success":true,"code > > > > You previously posted that you had got parsed_obj where > > parsed_obj["results] was an array. Go back to that. > > To quote your previous message > > >puts parsed_obj["results"] shows the entire results but `puts > parsed_obj["results"]["productId"] gets me error no implicit > > conversion of String into Integer > > The error is because it is an array, which is perfectly obvious if you > look at the unparsed string. So if you use > parsed_obj["results"][0] > you will get the first element > > Colin >
There are scripts in the browser page source that pass a lot of useful values like this <script type="text/javascript"> if(!window.runParams) { window.runParams = {}; } window.runParams.minPrice="44.98"; window.runParams.maxPrice="44.98"; ... And more within definitions in the same script like this var skuProducts=[{"skuAttr":"14:1052","skuPropIds":"1052","skuVal":{"actSkuCalPrice":"20.24","actSkuMultiCurrencyCalPrice":"20.24","actSkuMultiCurrencyDisplayPrice":"20.24","availQuantity":29,"inventory":30,"isActivity":true,"skuCalPrice":"44.98","skuMultiCurrencyCalPrice":"44.98","skuMultiCurrencyDisplayPrice":"44.98"}},{"skuAttr":"14:173","skuPropIds":"173","skuVal":{"actSkuCalPrice":"20.24","actSkuMultiCurrencyCalPrice":"20.24","actSkuMultiCurrencyDisplayPrice":"20.24","availQuantity":26,"inventory":30,"isActivity":true,"skuCalPrice":"44.98","skuMultiCurrencyCalPrice":"44.98","skuMultiCurrencyDisplayPrice":"44.98"}}]; var GaData = { pageType: "product", productIds: "en32837801078", totalValue: "US $20.24" }; Since it's in <script> containers in page source can I parse it? -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/rubyonrails-talk/34c54fd0-575a-412f-bf21-d874d30853c2%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.