你好。
我正在尝试从 JSP 传递 JSON。
<c:set var="json_text">
[{"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 }]
</c:set>
<script type="text/javascript">
var jsonString='<c:out value="${json_text}"/>';
var jsonObj = JSON.parse(jsonString);
</script>
重现 未捕获的语法错误:位置 2 的 JSON 中的意外标记 &
但是,如果您将整个内容直接复制到 Java 脚本中,那么一切正常。
<script type="text/javascript">
var jsonString='[{"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 jsonObj = JSON.parse(jsonString);
</script>
告诉我有什么问题。
ps首先想到的是in var jsonString=''; 只传递了一个字符串,但以这种方式检查
<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 jsonObj = ${json_text};中拥有的全部内容
这就是取得结果的方式
在jsp中生成json,可以使用标签库http://json-taglib.sourceforge.net