Reputation: 11
I have mySQL table:
+----+---------------------+-------+
| id | timestamp | value |
+----+---------------------+-------+
| 1 | 2016-03-29 18:53:28 | 1 |
| 2 | 2016-03-29 20:26:06 | 1 |
| 3 | 2016-03-29 20:26:22 | 1 |
+----+---------------------+-------+
3 rows in set (0.00 sec)
It is a table to hold water consumption data (each 1 in value
is a 1 liter of water).
I wrote a bash script to extract data - sum of litres of water by months.
watersum=`echo " SELECT MONTHNAME(timestamp), SUM(value) FROM woda GROUP BY YEAR(timestamp), MONTH(timestamp);" | mysql -s -u$SQUSER -p$SQPASS -h$SQHOST $SQLDB`
echo $watersum
gives me:
March 693 April 9768 May 11277 June 11987 July 10047 August 8570
I would like to save this data in json file. How do convert the string in $watersum
to a json string?
Upvotes: 1
Views: 896
Reputation: 21965
Make watersum
an array
watersum=( $(echo " SELECT MONTHNAME(timestamp), SUM(value) FROM woda GROUP BY YEAR(timestamp), MONTH(timestamp);" | mysql -s -u$SQUSER -p$SQPASS -h$SQHOST $SQLDB) )
echo "{" && for((i=0;i<"${#watersum[@]}";i+=2))
do
echo -n "\"${watersum[$i]}\":\"${watersum[((i+1))]}\"";
(( (i+2) == "${#watersum[@]}" )) || echo ","
done && echo;echo "}"
Output
{
"March":"693",
"April":"9768",
"May":"11277",
"June":"11987",
"July":"10047",
"August":"8570"
}
Upvotes: 1