请看一下GSP中的这个javascript代码(类似于JSP):
var json =JSON.parse("${savedkpiz.get(0).kpi.replace("\"","\\\"")}")
savedkpiz(列表对象)对象有时没有元素,所以在0处访问会抛出NPE,我该怎样才能阻止这段代码执行? JavaScript,如果其他似乎无法正常工作
var json =JSON.parse("${if(savedkpiz.size()>0) ? savedkpiz.get(0).kpi.replace("\"","\\\""):""}")
上面的代码也没有工作?我怎么能把条件放在这个上,同时如果是真的那么填充json变量。
请提前帮助guyz,谢谢
答案 0 :(得分:1)
您可以使用JSTL的<c:if>
标记拆分逻辑并实现您想要的功能,而不是在JavaScript中进行字符串替换。
var jsonStr = "";
<c:if test="${not empty savedkpiz}">
jsonStr = "${savedkpiz[0]}".replace(/"/g, "\\\"");
</c:if>
var json = JSON.parse(jsonStr);