gpt4 book ai didi

javascript - 将 ArrayList 传递给 JQuery Flot

转载 作者:行者123 更新时间:2023-11-30 00:13:15 26 4
gpt4 key购买 nike

下午好。

英语不是我的母语,所以请耐心等待。

我是 [see tags] 的初学者并且有一个网络应用程序收集日期和序列号以进行 sql 查询并将一些数据(来自度量的值和来自度量的日期)返回到 Action doDrawFlot ,在操作中,此数据被格式化以填充浮点图。

我需要一个 ArrayList<(String or Integer)> 并将其传递给 Javascript 以填充浮点图。

此刻我有我的Action:

public InputStream inputStream;

public String doDrawFlot() {

StringBuilder response = new StringBuilder();

response.append("1_20");
response.append("2_50");
response.append("3_10");

byte[] bArray = response.toString().getBytes();
inputStream = new ByteArrayInputStream(bArray);

return SUCCESS;
}

Struts2 XML

<action name="GetProfile" class="com.raspberry.struts.action.PerfilCargaAction" 
method="doDrawFlot">
<interceptor-ref name="SessionValidationStack" />
<result type="stream">
<param name="contentType">text/html</param>
<param name="inputName">inputStream</param>
</result>
</action>

Javascript 文件:

$(document).ready(function () {
//Re-load records when user click 'load records' button.
$('#LoadRecordsButton').click(function (e) {
$.ajax({
type: 'POST',
url: 'GetProfile?fechaPerfil='+$('#startDate').datepicker({ dateFormat: 'yyyy-mm' }).val()+'&meter=' + $('#meterList option:selected').text(),

success: function (response) {
console.log(response); //At request of @Raidri
var servletResponse = response;

var str = [];
var num = [];
var d1 = [];

for (var i = 0, len = servletResponse.length; i < len; i++) {

num.push(parseInt(servletResponse[i].split("_")[0])),
str.push(parseInt(servletResponse[i].split("_")[1]));
d1[i] = [num[i],str[i]];
}
console.log(d1); //At request of @Raidri
$.plot($("#placeholder"), [d1]);
}
});
});
$.plot($("#flotDiv"), [[]]);
});

如您所见,数据不在 ArrayList 中,这是因为我正在使用输入流来传递数据客户端。

要像数组一样传递数据并在 flot 中正确格式化是使用 Json(或 Gson)绝对必要吗?

或者我当前的构建可以完成这项工作?

任何想法(代码修复、POJO、新手的简单教程)或建议?

我正在使用 struts2 和 mykong tutorial对我没有帮助。

更新:

应@Raidri 的要求,两个控制台日志的输出:

控制台日志(响应):1_202_503_10

console.log(d1) : [1,NaN][NaN,NaN][2,NaN][0,NaN][2,NaN][NaN,NaN][5,NaN][0 ,NaN][3,NaN][NaN,NaN][1,NaN][NaN,0]

流发送一个字符串,我需要一个数组,因为度量的长度可能会改变(即“102”或“0”)

最佳答案

如您所见,d1 数组无效。并且您的原始数据字符串需要在数据点之间使用一些分隔符,例如

response.append("1_20;");
...

// response = "1_20;2_50;3_10"

然后我们可以使用 map() 函数来构建我们的数据数组,如下所示:

d1 = response.split(';').map(function (datapoint) {
return datapoint.split('_');
});

// d1 = [["1", "20"], ["2", "50"], ["3", "10"]]

关于javascript - 将 ArrayList 传递给 JQuery Flot,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35634496/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com