java - JSP 中的 JSON 和 Jquery 树

标签 java json jstl

首先,我发送一些参数,并对响应 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>
]}

格式良好的对象以括号开头并以括号结尾,您发送的多个对象以逗号分隔,但这是不正确的。

Proper json object

所以一个正确的版本看起来像,

{ "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/

相关文章:

javascript - 清理标记的 JSON 响应

json - 从位于内存中的 JSON 加载启动配置

javascript - 访问包含在同一 JSP 中的包含 javascript 文件中的 JSP(使用 JSTL)变量

java - 安全地将字符串传递给 javascript

java - 获取jsp页面注解类名称

java - 检查字符串是否包含字符串 - Java

java - 为什么要使用 Spring Android?

java - 是否可以在 Eclipse 中定义一组断点并仅在给定事件发生后触发它们?

java - 时区计数是否因地区而异?

php - 如何从包含图像文件的 json 字符串保存图像文件?