首先,我发送一些参数,并对响应 JSON 字符串进行一些转换并将其添加到列表中,然后从 spring Controller 将其传递到 JSP。
因此,在我的 JSP 中,我使用 for 循环来呈现数据,例如,
<c:forEach var="treeList" items="${JSONResult.jsonList}" varStatus='treeStatus'>
{ "title": "<c:out value='${treeList.name}' />", "key": "<c:out value='${treeList.id}' />" }
<c:if test="${!(treeStatus.last)}">,</c:if>
</c:forEach>
有了这个,我收到 JSON 错误,
语法错误:JSON.parse:JSON 数据后出现意外的非空白字符
但是如果我输入简单的数据,例如,
{ "title": "Node 1", "key": "1" }
然后就可以正常工作了。
此外,我对 XMLResponse.toSource() 错误保持警惕,我看到, \r 和\n 附加了很多。
请帮我解决为什么它不接受响应。
最佳答案
您提供的代码将输出以下内容,
{ "title": "Node 1", "key": "1" },
{ "title": "Node 2", "key": "2" },
{ "title": "Node 3, "key": "3" }
您需要用另一组括号将其括起来
{"data": [
<c:forEach var="treeList" items="${JSONResult.jsonList}" varStatus='treeStatus'>
{ "title": "<c:out value='${treeList.name}' />", "key": "<c:out value='${treeList.id}' />" }
<c:if test="${!(treeStatus.last)}">,</c:if>
</c:forEach>
]}
格式良好的对象以括号开头并以括号结尾,您发送的多个对象以逗号分隔,但这是不正确的。
所以一个正确的版本看起来像,
{ "data": [{ "title": "Node 1", "key": "1" },
{ "title": "Node 2", "key": "2" },
{ "title": "Node 3, "key": "3" }
]}
关于java - JSP 中的 JSON 和 Jquery 树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7349347/