Sponsored Content
Top Forums UNIX for Beginners Questions & Answers How to convert any shell command output to JSON format? Post 303037859 by Neo on Thursday 15th of August 2019 05:57:00 AM
Old 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

shell script to format command output

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

convert the output in table format

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

Convert TZ output to a different format

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

Multiple records need to convert UNIXtime to human readable datatime and all output in one format

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

Convert json to xml

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

Loop to convert text output in the HTML format

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

JSON Output format

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

Convert rows to column and print output in required format

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

Convert String to an Array using shell scripting in JSON file.

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

Printing df -h output in json format

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
PLUTIL(1)						    BSD General Commands Manual 						 PLUTIL(1)

NAME
plutil -- property list utility SYNOPSIS
plutil [command_option] [other_options] file ... DESCRIPTION
plutil can be used to check the syntax of property list files, or convert a plist file from one format to another. Specifying - as an input file reads from stdin. The first argument indicates the operation to perform, one of: -help Show the usage information for the command and exit. -p Print the property list in a human-readable fashion. The output format is not stable and not designed for machine parsing. The purpose of this command is to be able to easily read the contents of a plist file, no matter what format it is in. -lint Check the named property list files for syntax errors. This is the default command option if none is specified. -convert fmt Convert the named file to the indicated format and write back to the file system. If the file can't be loaded due to invalid syntax, the operation fails. fmt is one of: xml1, for version 1 of the XML plist format binary1, for version 1 of the binary plist format json, for the JSON format There are a few additional options: -- Specifies that all further arguments are file names -s Don't print anything on success. -r For JSON, add whitespace and indentation to make the output more human-readable. -o path Specify an alternate path name for the result of the -convert operation; this option is only useful with a single file to be converted. Specifying - as the path outputs to stdout. -e extension Specify an alternate extension for converted files, and the output file names are otherwise the same. DIAGNOSTICS
The plutil command exits 0 on success, and 1 on failure. SEE ALSO
plist(5) STANDARDS
The plutil command obeys no one's rules but its own. HISTORY
The plutil command first appeared in Mac OS X 10.2. Mac OS X August 30, 2002 Mac OS X
All times are GMT -4. The time now is 01:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy