Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在jsp中循环从javascript传递的JSONArray?_Javascript_Jsp - Fatal编程技术网

如何在jsp中循环从javascript传递的JSONArray?

如何在jsp中循环从javascript传递的JSONArray?,javascript,jsp,Javascript,Jsp,在我的jsp中,我试图迭代从js传递的JSONArray。 这就是我所做的: <script lang="javascript"> var movies = $("#searchResult"); console.log(movies); for (var i = 0; i < movies.length; i++) {

在我的jsp中,我试图迭代从js传递的JSONArray。 这就是我所做的:

<script lang="javascript">
                    var movies = $("#searchResult");
                    console.log(movies);    
                    for (var i = 0; i < movies.length; i++) {
                        console.log(movies[i]);
                    }
</script>

var movies=$(“#搜索结果”);
console.log(电影);
for(var i=0;i
但是它没有给我任何东西。
感谢您的帮助

所说的“它不给我任何东西”,您的意思是“movies”变量未定义吗?如果是,你试过这个答案吗

编辑(添加): 我认为通过提供console.log方法显示的内容来找到罪犯会更有帮助;这样我们就可以知道问题是在#searchResult中还是在'movies'变量的类型中。

通过“它不给我任何东西”,您是说'movies'变量未定义吗?如果是,你试过这个答案吗

编辑(添加):
我认为通过提供console.log方法显示的内容来找到罪犯会更有帮助;这样我们就可以知道问题是在#searchResult中还是在'movies'变量的类型中。

似乎您正在为movies分配一个JQuery元素,如果该元素不存在,您将生成一个新的,然后movies.length将为0,您将不会得到任何结果。如果有一个名为searchResult的元素,您将得到一个由一个元素组成的数组。

似乎您正在为movies分配一个JQuery元素,如果该元素不存在,您将生成一个新的元素,那么movies.length将为0,您将什么也得不到。如果有一个名为searchResult的元素,您将得到一个元素数组。

searchResult中的
意味着您将得到一个元素,该元素的
id
等于
searchResult

解决方案1

我不知道你的jsp在哪里,我假设你有一个
getmovies.jsp
请求,然后你可以像这个jquery一样收到结果

$.getJSON("getmovies.jsp", function(json) {
    $.each (json, function(k, movie) {
        console.log(movie.title);
    });
}); 
第2号解决方案 如果您有这样的代码:

<% List moviesList = (List) session.getAttribute("clist");
JSONArray moviesJSON = new JSONArray();
JSONObject tmp;

for (int i = 0; i < selected.size(); i++) {
    tmp = new JSONObject();
    tmp.put("id", selected.get(i));
    tmp.put("title", selected.get(i).getTitle());

    moviesJSON.put(tmp);
}%>
var moviesJSON = <%=moviesJSON%>;
moviesJSON.each(function( movies ) {
movies.each(function(index, movie) {
    console.log( index + ": " + movie.title );
});

结果如下:
  • I
  • II
  • III
  • IV
  • V
#searchResult
中的
#
意味着您将获得一个元素,该元素的
id
等于
searchResult

解决方案1

我不知道你的jsp在哪里,我假设你有一个
getmovies.jsp
请求,然后你可以像这个jquery一样收到结果

$.getJSON("getmovies.jsp", function(json) {
    $.each (json, function(k, movie) {
        console.log(movie.title);
    });
}); 
第2号解决方案 如果您有这样的代码:

<% List moviesList = (List) session.getAttribute("clist");
JSONArray moviesJSON = new JSONArray();
JSONObject tmp;

for (int i = 0; i < selected.size(); i++) {
    tmp = new JSONObject();
    tmp.put("id", selected.get(i));
    tmp.put("title", selected.get(i).getTitle());

    moviesJSON.put(tmp);
}%>
var moviesJSON = <%=moviesJSON%>;
moviesJSON.each(function( movies ) {
movies.each(function(index, movie) {
    console.log( index + ": " + movie.title );
});

结果如下:
  • I
  • II
  • III
  • IV
  • V
var movies=$(“#搜索结果”); console.log(电影)

movies变量可以是string。请检查一下。如果是字符串,则使用分隔符将其拆分,则循环将正常。

var movies=$(“#searchResult”); console.log(电影)


movies变量可以是string。请检查一下。如果是字符串,则使用分隔符拆分它,那么循环就可以了。

您可以发布
var movies
变量保存的JSON数组值吗?注意:
#searchResult
将生成id为
searchResult
的所有元素,并且由于id应该是唯一的,这将为您提供一个包含1个元素的数组。
#searchResult
中的
意味着您将获得一个元素,该元素的
id
等于
searchResult
。我建议您改用标签。类似于这样的
$(“p”)
此表达式将获取从文档中选择的DOM元素的集合。在本例中,标记为
p
。您可以发布
var movies
变量所持有的JSON数组值吗?注意:
#searchResult
将生成id为
searchResult
的所有元素,并且由于id应该是唯一的,这将为您提供一个包含1个元素的数组。
#searchResult
中的
意味着您将获得一个元素,该元素的
id
等于
searchResult
。我建议您改用标签。类似于这样的
$(“p”)
此表达式将获取从文档中选择的DOM元素的集合。在这种情况下,标签
p
。虽然这是一个很好的点和+1,但它仍然属于评论类别,并且仅链接到另一篇文章的答案可能会吸引反对票。所以你应该试着证明自己的回答是正确的。@Rajesh我认为他还没有权利评论别人的问题…@Simon我知道这一点。需要50个代表才能获得评论权限。我的意思是,他的回答就像是一个评论,这可能会吸引反对票。但他的观点是正确的。他别无选择,只能把它作为答案,他应该把它描述得足够清楚,从而为答案辩护。@Rajesh谢谢你的建议。我已经编辑了我的答案,我的编辑有帮助吗?虽然这是一个好的点和+1,但它仍然属于评论类别,并且只有链接到另一篇文章的答案可能会吸引反对票。所以你应该试着证明自己的回答是正确的。@Rajesh我认为他还没有权利评论别人的问题…@Simon我知道这一点。需要50个代表才能获得评论权限。我的意思是,他的回答就像是一个评论,这可能会吸引反对票。但他的观点是正确的。他别无选择,只能把它作为答案,他应该把它描述得足够清楚,从而为答案辩护。@Rajesh谢谢你的建议。我已经编辑了我的答案,我的编辑有帮助吗?