javascript插入错误的撇号

时间:2017-04-10 17:51:54

标签: javascript java spring-boot

我使用spring返回de simple string:

[['09:41',5,2.63],['09:49',6,2.63]]

我的java脚本应该使用此字符串填充google折线图:

data.addRows([['09:41',5,2.63],['09:49',6,2.63]]);

上面的代码正常工作,但是当我尝试用变量替换受损代码时,一个简单的撇号出现在蓝色中。

/*<![CDATA[*/
        var test = [[${chartValues}]];
        data.addRows(test);
/*]]>*/

问题是当我在eclipse控制台中打印出这个chartValues值时,它显示正确:

[['09:41',5,2.63],['09:49',6,2.63]]

当我尝试将此结果保存在变量test中并因此传递给addRows函数作为百万美元参数时,结果为:

data.addRows('[[\'09:41\',5,2.63]]');

我不知道为什么这个撇号在([

之间

构建此字符串的java类:

import java.util.ArrayList;

import br.com.carboni.utils.FileHandle;


public class BuildCsv {

    public static String buildArray() throws Exception {

        String path = Configuracao.path_monitora_disco;
        String currentDate = DateFormat.FormatDate();
        String filename = currentDate + Configuracao.filename;


        ArrayList<String> chartValues = FileHandle.readFileAsListOfStrings(path, filename);

        StringBuilder sb = new StringBuilder();                                                 

        for (String s : chartValues) {

            String hr = s.split(";")[0];
            String qtFiles = s.split(";")[1];
            String totalSize = s.split(";")[2].replaceAll(",", "."); 

            sb.append("['");
            sb.append(hr);
            sb.append("',");
            sb.append(qtFiles);
            sb.append(",");
            sb.append(totalSize);
            sb.append("],");

        }

        sb.deleteCharAt(sb.length()-1);

        return sb.toString();

    }

}

修改

我可以解决问题。实际上我只需要接收一个字符串并将其转换为javascript数组对象。

我使用了@Scott Sauyet的建议来使用eval。

所以我改变了控制器以发送类似['string1', int2, int3],['string1', int2, int3]的字符串。

在我的javascript中,我需要做的只是:

 /*<![CDATA[*/  
    var arr= eval("[" + [[${chartValues}]] + "]");
 /*]]>*/

所以:

data.addRows(arr);

1 个答案:

答案 0 :(得分:0)

似乎有错误
var data = [[${chartValues}]];
data.addRows(data);

看起来数据变量正在使用两次

尽管如此,试试这个:

data.addRows([[${chartValues}]]);

干杯