[GTALUG] Extracting data from JSON file

William Park opengeometry at yahoo.ca
Sat Jul 20 22:42:13 EDT 2019


On Sat, Jul 20, 2019 at 09:56:53AM -0400, Stewart C. Russell via talk wrote:
> Hi William,
> 
> > I'm writing automated test scripts.  Unfortunately for me, input 
> > configuration is XML, and I use "xmlstarlet" to get data from that.
> 
> Another one for the XML side is Dan Egnor's xml2. It converts XML to a
> simple flat line-oriented format that works well with command line tools:
> 
> Trivial XML:
> 
>     <xml>
>       <blort>squarnk</blort>
>       <mlem>-8</mlem>
>     </xml>
> 
> Examples:
> 
>     $ xml2 < triv.xml
>     /xml/blort=squarnk
>     /xml/mlem=-8
> 
>     $ xml2 < triv.xml | grep blort | 2xml
>     <xml><blort>squarnk</blort></xml>

I'm trying to avoid doing this kind of thing, because I will be spending
way too much time dealing with corner cases.  I already have!  That's
why I'm looking for "proper" parser.

> > Looks like "jq" is the answer.  But, I find that "jq" ignores
> > duplicate keys, and accepts only the last one.  Major pain!
> 
> Wait, are you saying that the JSON has duplicate hash keys, like this:
> 
>     {"blort":"squarnk","mlem":-8,"blort":"phweeen"}
> 
> (so, two values for the key "blort")? It really shouldn't do that, even
> though the file is valid JSON. Most JSON parsers only return the last value.

Yeah, something I noticed. :-(
-- 
William Park <opengeometry at yahoo.ca>


More information about the talk mailing list