我在正确显示表中的JSON时遇到问题。我正在使用handontable在网站上构建网格。我认为,我需要做的就是以正确的JSON格式将数据发送到handontable link。
我使用struts2-json-plugin将Java对象序列化为JSON格式,下面的JSON由插件自动生成。
在将JSON发送到handontable之后不幸,在表中只有[object Object]
的值只出现在表的第一个单元格中,而不是出现在整行(在不同列中)的实际值,而不是只在第一个牢房......
我正在从后端发送JSON:
{
"values": [
{
"fieldDTO": [
{
"value": "Elda"
},
{
"value": "HCPP"
},
{
"value": "Yes"
},
{
"value": "Green"
}
]
}
],
"headers": [
"Name",
"Qualification",
"Certification",
"Classification"
],
"rows": [
"Albania"
]
};
显示如下表格:
<div id="spreadsheet"></div>
$("#spreadsheet").handsontable({
startRows: 4,
startCols: 20,
rowHeaders: data.rows,
colHeaders: data.headers,
data: data.values,
contextMenu: true,
width: 1000,
manualColumnResize: true,
manualColumnMove: true,
columnSorting: true
});
FIDDLE: 您可以在FIDDLE HERE中查看。
为什么会失败?我的JSON格式在每列中显示数据是否不正确?我需要在一行中显示集合FieldDTO的列表,这就是JSON如上形式的原因。如何使这段代码(在表格中显示数据)正常工作?
答案 0 :(得分:1)
您需要在调用的columns
中指定handontable
属性,以便深入了解您的(稍微有点奇怪,见下文)数据结构:
$("#spreadsheet").handsontable({
// etc...
columns: [
{ data: "fieldDTO.0.value" },
{ data: "fieldDTO.1.value" },
{ data: "fieldDTO.2.value" },
{ data: "fieldDTO.3.value" }
]
});
See the docs for the array syntax for more info
我说“奇怪”,因为在对象中而不是在数组中使用适当命名的列会更好。基于位置的结构很脆弱。