【发布时间】:2014-10-29 21:26:01
【问题描述】:
我正在使用 gson 将 Java 对象转换为 Json,我正在按照下面的示例进行操作。
http://www.studytrails.com/java/json/java-google-json-java-to-json.jsp
我不明白的是如何创建多个列和行条目。所以我为我的项目修改了示例,以下是我的代码。
列的数据集类:
public class ColsDataset {
private String id;
private String label;
private String pattern;
private String type;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getLabel() {
return label;
}
public void setLabel(String label) {
this.label = label;
}
public String getPattern() {
return pattern;
}
public void setPattern(String pattern) {
this.pattern = pattern;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
必应类
public class Bing {
private ColsDataset[] cols;
private RowsDataset[] rows;
public void setRowsDataset(RowsDataset[] dataset) {
this.rows = dataset;
}
public RowsDataset[] getRowsDataset() {
return rows;
}
public void setColsDataset(ColsDataset[] dataset) {
this.cols = dataset;
}
public ColsDataset[] getColsDataset() {
return cols;
}
}
主类:
import com.google.gson.Gson;
public class test {
public static void main(String[] args) {
ColsDataset cols1 = new ColsDataset();
cols1.setId("");
cols1.setLabel("Impressions");
cols1.setPattern("");
cols1.setType("number");
ColsDataset cols2 = new ColsDataset();
cols2.setId("");
cols2.setLabel("Spend");
cols2.setPattern("");
cols2.setType("number");
RowsDataset rows = new RowsDataset();
//add row data
Bing bing = new Bing();
bing.setColsDataset(new ColsDataset[] {cols1});
Gson gson = new Gson();
System.out.println(gson.toJson(bing));
}
}
如您所见,我将 col1 数据作为数据集对象传递,但也不确定如何传递 cols2 数据。我知道我正在为 col2 创建一个新对象,我可能不必这样做。
以下是我现在的输出:
{"cols":[{"id":"","label":"Impressions","pattern":"","type":"number"}]}
期望的输出:
{"cols":[{"id":"","label":"Impressions","pattern":"","type":"number"},{"id":"","label":"Spend","pattern":"","type":"number"}]}
提前感谢您的帮助。
【问题讨论】:
-
new ColsDataset[] {cols1, cols2}? -
使用
List<ColsDataset>而不是ColsDataset[]... Un/Marshalling 不适用于原始数组类型。