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 <[email protected] <javascript:>>
> wrote:
> >
> > On Wed, 30 Jan 2019 at 22:09, fugee ohu <[email protected] <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 <[email protected]> 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 [email protected].
To post to this group, send email to [email protected].
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.