Commit fab4e96d authored by AdminXVII's avatar AdminXVII

JSON tools

parent 683f2f3f
Pipeline #5424 passed with stages
in 2 minutes and 8 seconds
......@@ -253,7 +253,7 @@ Since Ion does not support autocompletion via plugins, a lot of oh-my-zsh plugin
|--------------------------+--------------------------------|
| jruby | Not sure |
|--------------------------+--------------------------------|
| jsontools | Planned |
| jsontools | Done |
|--------------------------+--------------------------------|
| jump | Planned |
|--------------------------+--------------------------------|
......
# # jsontools
#
# Handy command line tools for dealing with json data.
#
# ## Tools
#
# - **pp_json** - pretty prints json
# - **is_json** - returns true if valid json; false otherwise
# - **urlencode_json** - returns a url encoded string for the given json
# - **urldecode_json** - returns decoded json for the given url encoded string
#
# ## Usage
# Usage is simple...just take your json data and pipe it into the appropriate jsontool.
# ```sh
# <json data> | <jsontools tool>
# ```
# ## Examples
#
# ##### pp_json
#
# ```sh
# # curl json data and pretty print the results
# curl https://coderwall.com/bobwilliams.json | pp_json
# ```
#
# ##### is_json
# ```sh
# # pretty print the contents of an existing json file
# less data.json | is_json
# ```
#
# ##### urlencode_json
# ```sh
# # json data directly from the command line
# echo '{"b":2, "a":1}' | urlencode_json
# ```
#
# ##### urldecode_json
# ```sh
# # url encoded string to decode
# echo '%7B%22b%22:2,%20%22a%22:1%7D%0A' | urldecode_json
# ```
if eq not $(which node) '' && eq $or($JSONTOOLS_METHOD 'node') 'node'
alias pp_json = 'xargs -0 node -e "console.log(JSON.stringify(JSON.parse(process.argv[1]), null, 4));"'
alias is_json = 'xargs -0 node -e "try {json = JSON.parse(process.argv[1]);} catch (e) { console.log(false); json = null; } if(json) { console.log(true); }"'
alias urlencode_json = 'xargs -0 node -e "console.log(encodeURIComponent(process.argv[1]))"'
alias urldecode_json = 'xargs -0 node -e "console.log(decodeURIComponent(process.argv[1]))"'
else if eq not $(which python) '' && eq $or($JSONTOOLS_METHOD 'python') 'python'
alias pp_json = 'python -mjson.tool'
alias is_json='python -c "
import json, sys;
try:
json.loads(sys.stdin.read())
except ValueError, e:
print False
else:
print True
sys.exit(0)"'
alias urlencode_json='python -c "
import urllib, json, sys;
print urllib.quote_plus(sys.stdin.read())
sys.exit(0)"'
alias urldecode_json='python -c "
import urllib, json, sys;
print urllib.unquote_plus(sys.stdin.read())
sys.exit(0)"'
else if eq not $(which ruby) '' && eq $or($JSONTOOLS_METHOD 'ruby') 'ruby'
alias pp_json = 'ruby -e "require \"json\"; require \"yaml\"; puts JSON.parse(STDIN.read).to_yaml"'
alias is_json = 'ruby -e "require \"json\"; begin; JSON.parse(STDIN.read); puts true; rescue Exception => e; puts false; end"'
alias urlencode_json = 'ruby -e "require \"uri\"; puts URI.escape(STDIN.read)"'
alias urldecode_json = 'ruby -e "require \"uri\"; puts URI.unescape(STDIN.read)"'
end
if exists -s JSONTOOLS_METHOD
drop JSONTOOLS_METHOD
end
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment