Ваши сомнения понятны.
Предполагаете, что в jsonString='<c:out value="${json_text}"/>';
передается строка <c:out value="${json_text}"/>.
НО это не так, JSTL тег срабатывает и передает полностью значение.
Для проверки я сделал так
<script type="text/javascript">
var JSONFromJSTL='<c:out value="${json_text}"/>';
jsonResult.push("Вывод JSON="+JSONFromJSTL);
result_json.innerHTML = jsonResult.join('<br>');
</script>
в
<div id="result_json"></div>
получаю такой результат
Вывод JSON=[{"TIME_STAMP": "2016-07-25 02:30:22", "COUNTER": "COUNT_ALL", "VALUE": 635 }, { "TIME_STAMP": "2016-07-25 02:30:22", "COUNTER": "COUNT_BAD", "VALUE": 1 }, { "TIME_STAMP": "2016-07-25 02:30:22", "COUNTER": "QUALITY", "VALUE": 99.84 }, { "TIME_STAMP": "2016-07-25 02:31:22", "COUNTER": "COUNT_ALL", "VALUE": 642 }, { "TIME_STAMP": "2016-07-25 02:31:22", "COUNTER": "COUNT_BAD", "VALUE": 1 }, { "TIME_STAMP": "2016-07-25 02:31:22", "COUNTER": "QUALITY", "VALUE": 99.84 }]
Почему в случае var jsonString='<c:out value="${json_text}"/>';
должно все быть по-другому?