Javascript 为什么GSON将对象数组转换为字符串数组?
我试图在JSP中显示对象列表。 由于GSON,该列表是从Java数组到Javascript数组的转换。 算法是:Javascript 为什么GSON将对象数组转换为字符串数组?,javascript,arrays,json,jakarta-ee,gson,Javascript,Arrays,Json,Jakarta Ee,Gson,我试图在JSP中显示对象列表。 由于GSON,该列表是从Java数组到Javascript数组的转换。 算法是: 加载servlet中对象的数组列表 使用GSON转换为JSON对象 将JSON对象转发到JSP 在Javascript数组中加载JSON对象 将Javascript数组显示为HTML 问题是,当我循环JS数组时,它无法将JS数组的元素识别为对象: 问题是当我循环JS数组并打印它的元素时,我得到了第一张图像的字符这意味着GSON不会将数组转换为对象,而是转换为字符串数组 如何确保G
ArrayList<Activite> listActivite = new ArrayList<Activite>();
// ... Fill array from database ...
String jsonActivite = new Gson().toJson(listActivite);
request.setAttribute( "listActivite", listActivite );
requestDispatcher.include(request, response);
ArrayList listActivite=new ArrayList();
// ... 从数据库填充数组。。。
字符串jsonActivite=new Gson().toJson(listActivite);
setAttribute(“listActivite”,listActivite);
requestDispatcher.include(请求、响应);
JSP端:
<!-- Load Array List -->
<script>
var listActivite = <%= new Gson().fromJson((String)request.getAttribute("jsonActivite"))%>;
</script>
<p id="demo"><p>
<!-- Print the Array List's objects in the paragraph <p> -->
<script>
var p = document.getElementById("demo");
document.getElementById("demo").innerHTML+=listActivite+"</br></br>";
for(i=0; i<listActivite.length; i++){
p.innerHTML += 'ID:'+listActivite[i].id+' DESC:'+listActivite[i].description+'</br>';
}
</script>
var listActivite=;
var p=document.getElementById(“演示”);
document.getElementById(“demo”).innerHTML+=listActivite+“”;
对于(i=0;i问题注释中的用户所说的答案是不解析JSP中的请求属性
var listActivite = <%= request.getAttribute("jsonActivite")%>;
var-listActivite=;
listActivite现在是一个简单的JS对象数组
谢谢你,Pointy。在我看来,你好像在两次转换为JSON——一次在Java代码中,一次在JSP中。@Pointy谢谢,是的,这是一个错误。我将其更正为fromJson()。但现在JSP无法识别fromJson()方法。为什么?在哪里?没有fromJson()
在您发布的代码中。这应该不是必需的;您的JSON字符串是有效的JavaScript,因此无需进一步解析。@Pointy我将toJson()
编辑为fromJson()
在代码中。我不明白为什么它不起作用。谢谢@Pointy,我应该按照您所说的那样获取属性,而不需要进一步解析。var listActivite=;
var listActivite = <%= request.getAttribute("jsonActivite")%>;