Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re^3: Parsing a large html with perl

by zesys (Novice)
on Jun 04, 2020 at 05:16 UTC ( [id://11117684]=note: print w/replies, xml ) Need Help??


in reply to Re^2: Parsing a large html with perl
in thread Parsing a large html with perl

Thanks @perlfan. I will try your first suggestion. I admit, as a non-developer, I often find it a daunting task making sense of a JSON response.

Replies are listed 'Best First'.
Re^4: Parsing a large html with perl [JSON Tips]
by kcott (Archbishop) on Jun 06, 2020 at 09:04 UTC

    G'day zesys,

    Welcome to the Monastery.

    "... I often find it a daunting task making sense of a JSON response."

    You don't say what aspects of this you find daunting. Here's a few tips.

    JSON is often presented as a single string many hundreds or thousands of characters long. I typically find this impossible to read at a glance; no doubt, you do too. The solution is to format that string into a more humanly readable structure. I use "JSON Formatter and Validator" for this; if you don't like that one, there are many others available, so just search for something that better suits you.

    Now that you have a readable structure, just think of each ':' as a '=>' and you have a Perl hashref. That's a slight oversimplification but, in nearly all cases, it will hold true.

    # JSON: { "string" : "value", "array" : [ 1, 2, 3 ], "hash" : { "key1" : "val1", "key2" : "val2" } } # Perl: { "string" => "value", "array" => [ 1, 2, 3 ], "hash" => { "key1" => "val1", "key2" => "val2" } }

    The JSON syntax is actually very simple. It's described, clearly and succinctly, in "Introducing JSON".

    If you're not completely familiar with hashrefs, take a look at the Hashes section of "perlintro: Perl variable types". That section — indeed, the entirety of the perlintro page — is peppered with with links to more detailed descriptions, additional information, and more advanced, related topics: don't be put off by the idea that this page is just an introduction for complete novices.

    There's also a few gotchas which may not be immediately obvious; in some cases, they're highly unintuitive. Here's a couple that have tripped me up in the past:

    • Valid JavaScript is not necessarily valid JSON. Strings in JSON must be delimited by double-quotes, so { "answer": 42 } is valid in both. These, however, are valid in JavaScript but not in JSON: { 'answer': 42 } and { answer: 42 }.
    • In Perl, the final element in a list may be optionally followed by a comma; in JSON, that final comma is not allowed. So, [ 1, 2, 3 ] is valid in both; however, [ 1, 2, 3, ] is valid Perl but invalid JSON.

    — Ken

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (2)
As of 2024-04-26 07:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found