为什么GSON会将对象数组转换为字符串数组呢?

米卡赫尔

我正在尝试在JSP中显示对象列表。由于GSON,该列表是从Java数组到Javascript数组的转换。该算法是:

  1. 在servlet中加载对象的数组列表
  2. 使用GSON转换为JSON对象
  3. 将JSON对象转发到JSP
  4. 在Javascript数组中加载JSON对象
  5. 将Javascript数组显示为HTML

在此处输入图片说明

问题是当我循环JS数组时,它无法将JS数组的元素识别为对象:

在此处输入图片说明

问题是当我循环JS数组并打印其元素时,我得到了第一个图像的字符!这意味着GSON不会将Array转换为对象,而是转换为字符串数组

如何确保GSON实际上将JAVA对象数组转换为JS对象数组?

我的课程“ Activite”:

public class Activite {
   private int id;
   private String description;
}

Servlet端:

ArrayList<Activite> listActivite = new ArrayList<Activite>();
// ... Fill array from database ...
String jsonActivite = new Gson().toJson(listActivite);
request.setAttribute( "listActivite", listActivite );
requestDispatcher.include(request, response);

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>
米卡赫尔

正如问题注释中的用户Pointy所说,答案是不解析JSP中的request属性。

var listActivite =  <%= request.getAttribute("jsonActivite")%>;

listActivite现在是普通的JS对象数组。

谢谢Pointy。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将对象数组转换为字符串数组

将对象数组转换为字符串数组

将对象数组转换为字符串数组

为什么传播语法会将我的字符串转换为数组?

使JQ将对象数组转换为字符串

将对象数组转换为字符串

将对象(数组?)转换为字符串

jQuery将对象数据转换为字符串数组

将对象转换为字符串数组

将对象数组转换为基于字符串属性的嵌套对象数组?

将数据框转换为rec数组(并将对象转换为字符串)

如何在Java中将对象数组转换为字符串数组

在TypeScript中将对象数组转换为字符串数组

使用 typescript 或 javascript 将对象数组转换为字符串数组

使用Typescript将对象的JSON数组转换为字符串数组

如何将对象数组转换为字符串数组而不丢失Dataweave中的键?

将对象数组(带有字符串数组元素)转换为嵌套树

反应本机将对象数组转换为字符串数组

如何将对象数组转换为字符串数组

为什么将此字符串值转换为数组?

根据键中的子字符串将对象转换为对象数组

如何将对象数组转换为逗号分隔的字符串?

javascript将对象数组转换为字符串以存储在s3中

将对象中的数组转换为单个字符串

如何将对象数组转换为url字符串?

angularjs-JavaScript-将对象值从字符串转换为数组结构

如何在Symfony 3中将对象数组转换为字符串?

将对象数组中的所有值转换为字符串?

将对象的属性转换为数组 MongoDB(字符串到 int)