- name: convert ruby hash to json
debug:
msg: "{{ ruby_hash |
regex_replace('([{,]\\s*):([^>\\s]+)\\s*=>', '\\1\"\\2\"=>') |
regex_replace('([{,]\\s*)([0-9]+\\.?[0-9]*)\\s*=>', '\\1\"\\2\"=>') |
regex_replace('([{,]\\s*)(\".+?\"\\|[0-9]+\\.?[0-9]*)\\s*=>\\s*:([^,}\\s]+\\s*)', '\\1\\2=>\"\\3\"') |
regex_replace('([\\[,]\\s*):([^,\\]\\s]+)', '\\1\"\\2\"') |
regex_replace('=>nil', '=>null') |
regex_replace('([{,]\\s*)(\".+?\"|[0-9]+\\.?[0-9]*)\\s*=>', '\\1\\2:') |
regex_replace('([{,]\\s*)''(.+?)''\\s*=>', '\\1\"\\2\":')
}}"
vars:
ruby_hash: "{:data=>{:color=>\"blue\", :number=>\"eleventeen\"}, :metadata=>{:created_time=>\"2022-05-13T14:42:18.949064761Z\", :custom_metadata=>nil, :deletion_time=>\"\", :destroyed=>false, :version=>1}}"
TASK [convert ruby hash to json] ************************************
ok: [localhost] => {
"msg": {
"data": {
"color": "blue",
"number": "eleventeen"
},
"metadata": {
"created_time": "2022-05-13T14:42:18.949064761Z",
"custom_metadata": null,
"deletion_time": "",
"destroyed": false,
"version": 1
}
}
}