author Hans-Jörg Bibiko category Format command DATA=$(cat) FORMAT=$(echo "$DATA" | head -n 1 | perl -e '$l=<>;if($l=~m/^\s*\{\s*$/) {print "1";} else {print "2";}') # if FORMAT == 1 then serialize JSON data otherwise pretty print them if [ "$FORMAT" -eq "1" ]; then DATA=$(echo "$DATA" | php -r ' $jsonData = ""; $inputStream = fopen("php://stdin", "r"); while($d = fgets($inputStream)) { $jsonData .= $d; } print json_encode(json_decode($jsonData)); ') if [ "$DATA" == "null" ]; then echo "<font>An error occured while serializing JSON data!</font>" exit $SP_BUNDLE_EXIT_SHOW_AS_HTML_TOOLTIP fi else DATA=$(echo "$DATA" | python -mjson.tool) fi # if there's a need to preserve Unicode characters remove the first to characters of the following line # DATA=$(echo "$DATA" | perl -Xpe 'binmode STDIN,":utf8";binmode STDOUT,":utf8";s/\\u([0-9A-F]{4})/chr(hex($1))/ieg') printf "%b" "$DATA" contact znvy@ovovxb.qr description If the first line of the selection or the entire content of the current text input field only contains a "{" then serialize the JSON data otherwise the JSON data will be pretty printed. If there's a need to preserve the Unicode characters you can uncomment the line 22. Version 1.0 input selectedtext input_fallback entirecontent internalKeyEquivalent characters J keyCode 38 modifierFlags 1572864 keyEquivalent ~@j name Toggle JSON Format output replaceselection scope inputfield tooltip Serialize or pretty print JSON data uuid 87FD8A4F-90AA-4020-9E0B-8CDD05764D08 isDefaultBundle