【问题标题】:How to pass an array from Java to Ajax如何将数组从 Java 传递到 Ajax
【发布时间】:2018-03-26 10:55:22
【问题描述】:

我是 Ajax 新手,我认为会有很多将数组从 java 传递到 ajax 的示例;但是,我一直无法找到它们。我想将三个字符串传递给 ajax,然后在 HTML 中显示它们。我的java代码是:

System.out.println("Authenticated");
String json = new Gson().toJson(questionList);
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
response.getWriter().write(json);

ajax 是:

dataType: "json";
alert(responseJson);
var result = $.parseJSON(responseJson); <-- this line fails
$('#question1').val(result.question1);
$('#question2').val(result.question2);
$('#question3').val(result.question3);

警报显示“问题 1 是 a?,问题 2 是 b?,问题 3 是 c?”。

如何传递每个字符串以在 HTML 中显示。我怀疑我需要以不同的方式在 java 中构建数组,并以不同的方式在 ajax 中接收结果;但是,我找不到适用的例子。我不想使用 unstring,因为问题可能包含“,”或使用的其他分隔符。

【问题讨论】:

  • jsonString json = new Gson().toJson(questionList); 之后得到什么?因为从警报显示来看,它似乎不是一个有效的 json 字符串。
  • 我添加了"System.out.println("json = " + json); 结果是:"json = ["问题1是a?","问题2是b?", "问题 3 是 c?"]"。
  • 对我来说,您正在重新解析已经存在于 json 中的字符串。你设置了 application/json ,所以我看不到在 ajax 中解析的需要

标签: java html ajax


【解决方案1】:

你从 ajax 得到的responseJosn 已经被解析过了。无需再次解析。这是Array。所以JS代码会是这样的:

dataType: "json";           //this line should not be here
alert(responseJson);
//var result = $.parseJSON(responseJson); <-- this line fails
$('#question1').val(responseJson[0]);
$('#question2').val(responseJson[1]);
$('#question3').val(responseJson[2]);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-03
    • 2013-12-10
    • 2012-06-09
    相关资源
    最近更新 更多