首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪种Java对象必须传递给Google Charts trendline?

哪种Java对象必须传递给Google Charts trendline?
EN

Stack Overflow用户
提问于 2015-03-12 20:56:04
回答 1查看 142关注 0票数 0

JSON是通过传递List<List<Trendline>>作为参数使用Gson创建的。

Object Trendline如下:

代码语言:javascript
复制
private double state;
private double planogram;
private double mix;
private double share;
private double execution;
private String annotation;
// constructors, getters and setters

在JavaScript部分中,在创建列之后,添加每一行:

代码语言:javascript
复制
var i = 0;
for (var key in trendline) {
    var row = trendline[key];
    for (var prop in row) {
        if (row.hasOwnProperty(prop)) {
            if (i === 0) {
                stateName = row[prop];
            }
            if (i === 1) {
                planogram = row[prop];
            }
            if (i === 2) {
                mix = row[prop];
            }
            if (i === 3) {
                share = row[prop];
            }
            if (i === 4) {
                execution = row[prop];
            }
            if (i === 5) {
                annotation = row[prop];
            }
        }
        i = i+1;
    }
    row = new Array(stateName, planogram, mix, share, execution, annotation);
    columnData.addRow(row);
}

正在显示图表,但没有加载任何数据,即使在Java方法中为这些变量设置了手工值之后也是如此。

EN

回答 1

Stack Overflow用户

发布于 2015-03-13 05:03:04

使用jsonschema2pojo作为构建POJO的助手。我粘贴的JSON代码来自Google Charts documentation

代码语言:javascript
复制
{
  "cols": [
        {"id":"","label":"Topping","pattern":"","type":"string"},
        {"id":"","label":"Slices","pattern":"","type":"number"}
      ],
  "rows": [
        {"c":[{"v":"Mushrooms","f":null},{"v":3,"f":null}]},
        {"c":[{"v":"Onions","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Olives","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Zucchini","f":null},{"v":1,"f":null}]},
        {"c":[{"v":"Pepperoni","f":null},{"v":2,"f":null}]}
      ]
}

它创建了4个类,我对它们做了一些修改(见答案末尾):GCDataTable (在“类名”中键入),ColRowC

构建JSON字符串的代码如下(使用Gson):

代码语言:javascript
复制
Gson gson = new GsonBuilder().serializeNulls().create();

GCDataTable dataTable = new GCDataTable();

List<Col> cols = new ArrayList<>();

Col col1 = new Col();
col1.setId("");
col1.setLabel("Label 1");
col1.setPattern("");
col1.setType("number");
cols.add(col1);

Col col2 = new Col();
col2.setId("");
col2.setLabel("Label 2");
col2.setPattern("");
col2.setType("number");
cols.add(col2);

Col col3 = new Col();
col3.setId("");
col3.setLabel("Label 3");
col3.setPattern("");
col3.setType("number");
cols.add(col3);

Col col4 = new Col();
col4.setId("");
col4.setLabel("Label 4");
col4.setPattern("");
col4.setType("number");
cols.add(col4);

Col col5 = new Col();
col5.setId("");
col5.setLabel("Label 5");
col5.setPattern("");
col5.setType("number");
cols.add(col5);

dataTable.setCols(cols);

List<Row> rows = new ArrayList<>();

listOne.stream().map((_item) -> new ArrayList<>()).forEach((cList) -> {
    Row row = new Row();
    listTwo.stream().map((obj) -> {
        C c = new C();
        c.setV(obj.getAttribute());
        return c;
    }).map((c) -> {
        c.setF(null);
        return c;       
    }).map((c) -> {
        cList.add(c);
        return c;       
    }).map((_item) -> {
        row.setC(cList);
        return _item;
    }).forEach((_item) -> {
        rows.add(row);
    });
});

dataTable.setRows(rows);
trendlineJson = gson.toJson(dataTable);

然后,我将生成的JSON传递给google.visualization.DataTable的构造函数,而不是遍历每一行,如下所示:

代码语言:javascript
复制
var dataTable = #{managedBean.trendlineJson}
var columnData = new google.visualization.DataTable(dataTable);

Java 7的for-each:

代码语言:javascript
复制
for (String str : listOne) {
    List<Object> cList = new ArrayList<>();
    Row row = new Row();
    for (Object obj : listTwo) {
        C c = new C();
        c.setV(obj.getAttribute());
        c.setF(null);
        cList.add(c);
        row.setC(cList);
        rows.add(row);
    }
}

巴斯德(

  • GCDataTable (Pastebin)
  • Col (Pastebin)
  • Row (Pastebin)
  • C )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29010397

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档