08-15-2019
The trick of course if to create an array of JSON objects which are comma separated key, value pairs.
I don't think a tool like
jq is designed to "
think for you, as to how to create the array of JSON objects from raw data".
That's up to you to design, specific to this single application first.
Personally, I think you are jumping to tools like
jq too quickly before you fully understand / design your algorithm to take your raw output and create an array of JSON objects.
If it was me, I would write this in PHP and it would only take a few lines of PHP code to take your input and create the desired JSON file.
Either way, bash or PHP or Javascript, it a simply matter:
- Taking the output of the command as text as input into your code.
- Parsing this data.
- Creating a JSON object from each line of parsed data (the values), keeping the header line as the key to the JSON objects..
- Add the JSON object above to an another array.
- Repeat for the next line of data in your output
I have done this 100s of time (using PHP) and there is generally no short-cut to writing your algorithm to take raw text as data and parsing it into a JSON object and then creating an array of JSON objects.
However, generally speaking I create an array of arrays and then convert the final array to JSON; but it really depends on the format of the final JSON object and if it needs to be
stringified to be transmitted over the net.
Also, I would caution you not to try to create "one parser to rule them all" as the output of other commands will like need a different parser.
Then when you have done this for a number of different commands, you can consider if you want to build "the mother of all UNIX commands to JSON parser".
Reference:
PHP: json_encode - Manual
This User Gave Thanks to Neo For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Hello team,
I am running below command which is giving following output.
bash-3.00$ ps -eo pid,pcpu,args | sort +1n | grep -i java
12 0.0 grep -i java
8804 0.0 /opt/app/ccr/home/ccr/WebSphere/AppServer/java/bin/sparcv9/java -XX:+UnlockDiag
9241 0.0... (7 Replies)
Discussion started by: coolguyamy
7 Replies
2. Shell Programming and Scripting
Hi All,
I have a output like below values
val1=test.com
val2=10.26.208.11
val3=en1
val4=test-priv1.com
val5=192.168.3.4
val6=en2
val7=test-priv2.com
val8=192.168.4.4
val9=en3
val10=test-vip.com
val11=10.26.208.9
val12=$val3
I want to convet this output values into below... (1 Reply)
Discussion started by: kamauv234
1 Replies
3. Shell Programming and Scripting
Friends,
I am trying to convert my local server timezone EST to UTC and for which I used the TZ command, see below
$ date
Thu Dec 6 10:14:14 EST 2012
$
$ TZ=UTC date -d '10:14 EST'
Thu Dec 6 15:14:00 UTC 2012
Now I would like to have the same output in 'yyyymmdd hh:mm' format.
... (4 Replies)
Discussion started by: vivek_damodaran
4 Replies
4. Shell Programming and Scripting
Hello Experts,
Below is the record i have:
sample data attached
I want this record of each row to be in single line and there are multiple rowise unixtime mentioned e.g 11996327 , This needs to be converted to Human readdable data and time from multiple rows
Can you help me , it will be... (10 Replies)
Discussion started by: manishK
10 Replies
5. Shell Programming and Scripting
Hello everyone,
I have created a workflow that will pull down data via a RESTful API in JSON, then my code parses and modifies said data. The problem I have is that these APIs I am working with only accept XML to PUT/POST data, and I am looking for an easy way to convert my JSON file to XML.
... (2 Replies)
Discussion started by: Zaphod_B
2 Replies
6. Shell Programming and Scripting
Hello Everyone,
I have a sample file raw.txt as shown below :
Drive Bays
Bay Name : SD-2C
Number of Standby Power Supplies : 4
Number of Drive Enclosures : 12
Summary Status of Contained Modules
All... (6 Replies)
Discussion started by: rahul2662
6 Replies
7. Shell Programming and Scripting
Dear friends,
I'm getting below API result and i would like to format them with Shell scripting.
Input
"id": 9,
"description": "short desc",
"name": "test",
"name_with_namespace": "ABCD-PDFF-PLATFORM-TEST-V1 / test",
"path": "test",
"path_with_namespace":... (7 Replies)
Discussion started by: baluchen
7 Replies
8. UNIX for Beginners Questions & Answers
Hi All,
i am trying to print the solaris 11 packages in below required format, But i am unable to do that.
Current ouput :
root@abc# pkginfo -l | egrep '(BASEDIR|NAME|VERSION)' | awk '{print}'
NAME: QLogic 570x/571x Gigabit Ethernet Driver
VERSION: 11.11,REV=2009.11.11
... (7 Replies)
Discussion started by: balu1234
7 Replies
9. UNIX for Beginners Questions & Answers
This is the sample json I have pasted here. I want all the IP address strings to be converted into an array. For example "10.38.32.202" has to be converted to everywhere in the JSON. There are multiple IPs in a JSON I am pasting one sample object from the JSON. But the IPs already in an Array... (11 Replies)
Discussion started by: vinshas1
11 Replies
10. UNIX for Beginners Questions & Answers
Hi All,
i am trying to print the df -h ouput in json format. using below script.
#!/usr/bin/env bash
df -h > /tmp/sdf
nawk '{print " "$1" "$2" "$3" "$4" "$5" "$6" "}' /tmp/sdf > /tmp/sdf1
nawk 'NR==1 { for (i=1; i<=NF; i++) { f = i }}{ print $(f), $(f), $(f), $(f), ... (2 Replies)
Discussion started by: sravani25
2 Replies
LEARN ABOUT DEBIAN
test::json
Test::JSON(3pm) User Contributed Perl Documentation Test::JSON(3pm)
NAME
Test::JSON - Test JSON data
VERSION
Version 0.11
SYNOPSIS
use Test::JSON;
is_valid_json $json, '... json is well formed';
is_json $json, $expected_json, '... and it matches what we expected';
EXPORT
o is_valid_json
o is_json
DESCRIPTION
JavaScript Object Notation (JSON) is a lightweight data interchange format. Test::JSON makes it easy to verify that you have built valid
JSON and that it matches your expected output.
See <http://www.json.org/> for more information.
TESTS
is_valid_json
is_valid_json $json, '... json is well formed';
Test passes if the string passed is valid JSON.
is_json
is_json $json, $expected_json, '... and it matches what we expected';
Test passes if the two JSON strings are valid JSON and evaluate to the same data structure.
Test::Differences is used to provide easy diagnostics of why the JSON structures did not match. For example:
Failed test '... and identical JSON should match'
in t/10testjson.t at line 14.
+----+---------------------------+---------------------------+
| Elt|Got |Expected |
+----+---------------------------+---------------------------+
| 0|{ |{ |
| 1| bool => '1', | bool => '1', |
| 2| description => bless( { | description => bless( { |
| 3| value => undef | value => undef |
| 4| }, 'JSON::NotString' ), | }, 'JSON::NotString' ), |
| 5| id => '1', | id => '1', |
* 6| name => 'foo' | name => 'fo' *
| 7|} |} |
+----+---------------------------+---------------------------+
AUTHOR
Curtis "Ovid" Poe, "<ovid@cpan.org>"
BUGS
Please report any bugs or feature requests to "bug-test-json@rt.cpan.org", or through the web interface at
<http://rt.cpan.org/NoAuth/ReportBug.html?Queue=Test-JSON>. I will be notified, and then you'll automatically be notified of progress on
your bug as I make changes.
SEE ALSO
This test module uses JSON::Any and Test::Differences.
ACKNOWLEDGEMENTS
The development of this module was sponsored by Kineticode, <http://www.kineticode.com/>, the leading provider of services for the
Bricolage content management system, <http://www.bricolage.cc/>.
Thanks to Makamaka Hannyaharamitu "makamaka@cpan.org" for a patch to make this work with JSON 2.0.
Thanks to Stevan Little for suggesting a switch to JSON::Any. This makes it easier for this module to work with whatever JSON module you
have installed.
COPYRIGHT & LICENSE
Copyright 2005-2007 Curtis "Ovid" Poe, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
perl v5.10.1 2009-08-09 Test::JSON(3pm)