Beefy Boxes and Bandwidth Generously Provided by pair Networks
Keep It Simple, Stupid

Build JSON With Perl

by srchulo (Sexton)
on Nov 11, 2011 at 06:25 UTC ( #937530=perlquestion: print w/replies, xml ) Need Help??
srchulo has asked for the wisdom of the Perl Monks concerning the following question:

Hi all,

I am trying to build JSON such as this with Perl:


Essentially it is JSON array of JSON objects. However, I am not finding any good tutorials online. Does anyone have any suggestions? Currently I am using the JSON::XS module to decode, but I'm open to anything as long as it works.

Currently I have this code:

my %hash = {}; $hash{'lool'} = "WEEEE"; $hash{'YAY'} = "WEEEE"; my $json = JSON->new->allow_nonref; my $json_text = $json->encode(\%hash);

Only problem is that it creates this:


Which also include the hash reference itself in it. Any help would be appreciated!

Many Thanks,

Replies are listed 'Best First'.
Re: Build JSON With Perl
by MVS (Monk) on Nov 11, 2011 at 07:16 UTC

    Actually, that's not the hash reference itself that you're seeing. It's the third element of the hash, which was created by the empty curly braces. Change:

    my %hash = {};


    my %hash;

    and it should work the way you're looking for.

      Using strict and warnings would have shown that:

      Reference found where even-sized list expected at -e line 1.

      Good catch though, I missed it in converting the example to a one-liner

      Enjoy, Have FUN! H.Merijn
Re: Build JSON With Perl
by Tux (Abbot) on Nov 11, 2011 at 07:17 UTC

    Using JSON-2.53 I get:

    $ perl -MJSON -E'say JSON->new->allow_nonref->encode({lool=>"WEEEE",YA +Y=>"WEEEE"})' {"lool":"WEEEE","YAY":"WEEEE"}

    Did you miss something in the example code?

    Enjoy, Have FUN! H.Merijn

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: perlquestion [id://937530]
Approved by Corion
Front-paged by Corion
[kcott]: marioroy, not much to go on. Searching "slow logging" (by me) produces no results; just "slow" gives a screenful. Perhaps, "Searching large files a block at a time" which had a performance aspect and you had some imput also.
[gnosti]: Hi, Looking for a module that can add HH:MM:SS durations like 1:40, 1:00:24.13 and 12.3? I see on CPAN more modules with absolute dates. TIA
[kcott]: s/imput/input/
[Corion]: DateTime::Duration ? Personally,I convert stuff to seconds using Time::Piece or Time::Local and then add the seconds and then use POSIX::strftime to print them as hours again
[marto]: good morning all, TCIF
[gnosti]: I'm reading from ffmpeg lengths of video clips in H:M:S and needing to add them and format them back to H:M:S for feeding back to ffmpeg
[marioroy]: kcott Thanks

How do I use this? | Other CB clients
Other Users?
Others exploiting the Monastery: (7)
As of 2017-08-18 08:53 GMT
Find Nodes?
    Voting Booth?
    Who is your favorite scientist and why?

    Results (297 votes). Check out past polls.