Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re: Building a URL Query String from a Data Structure

by thomas895 (Deacon)
on Feb 09, 2016 at 18:58 UTC ( #1154756=note: print w/replies, xml ) Need Help??


in reply to Building a URL Query String from a Data Structure

Even "data structure ==> JSON ==> query string" would be ok too.
So just use JSON and URI::Escape?

-Thomas
"Excuse me for butting in, but I'm interrupt-driven..."
  • Comment on Re: Building a URL Query String from a Data Structure

Replies are listed 'Best First'.
Re^2: Building a URL Query String from a Data Structure
by dorko (Prior) on Feb 10, 2016 at 13:34 UTC
    Hi thomas895,

    If I understand you correctly, you're suggesting something like this:

    use strict; use warnings; use JSON; use URI::Escape; my $json_string = JSON::to_json($perl_structure); print URI::Escape::uri_escape($json_string);

    Output:

    %7B%22sub%22%3A%7B%22name%22%3A%22foo%22%2C%22message%22%3A%22bar%22%7D%2C%22file_ids%22%3A%5B1%2C2%5D%2C%22name%22%3A%22test%20name%22%7D

    So that's kind of like saying:

    https://example.com/api/v1/dosomething?{"file_ids":[1,2],"name":"test name","sub":{"message":"bar","name":"foo"}}

    and I need to be saying:

    https://example.com/api/v1/dosomething?name=test+name&file_ids[]=1&fil +e_ids[]=2&sub[name]=foo&sub[message]=bar

    I did take a look at the URI module and I didn't see anything there...

    Cheers,

    Brent

    -- Yeah, I'm a Delt.

      You said JSON would be fine, so that's what I suggested. How else would you do the "data structure ==> JSON ==> query string" thing?

      -Thomas
      "Excuse me for butting in, but I'm interrupt-driven..."
        Sorry about the confusion, it's entirely my fault. To be clear, the end product I'm looking for is a query string.

        I do appreciate your time and attention.

        Cheers,

        Brent

        -- Yeah, I'm a Delt.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1154756]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (1)
As of 2021-07-31 19:23 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found

    Notices?