【发布时间】:2019-06-21 23:58:07
【问题描述】:
我是一名前端开发人员,对后端开发不熟悉。我的任务是在 Java 对象中建模 json。现在我的控制器返回的只是一些模拟数据。
{
"data":{
"objectId":25,
"columnName":[
"myCategory",
"myCategoryId"
],
"columnValues":[
[
"Category One",
1
],
[
"Category Two",
2
],
[
"Category Three",
3
],
[
"Category Four",
4
],
[
"Category Five",
5
]
]
}
}
这是我的尝试。控制器正确返回此 json。但这不是太简单了吗?我认为应该做的是将 columnName 和 columnValues 数组外推到单独的类中,但我不确定如何。
package com.category;
import java.util.List;
public class MyObjectData {
private int objectId;
private List columnName;
private List columnValues;
public int getObjectId() {
return objectId;
}
public void setObjectId(int objectId) {
this.objectId = objectId;
}
public List getColumnName() {
return columnName;
}
public void setColumnName(List colName) {
this.columnName = colName;
}
public List getColumnValues() {
return columnValues;
}
public void setValues(List values) {
this.columnValues = values;
}
}
关于 columnNames 和 columnValues,我觉得我应该在模型中做这样的事情:
private List<ColumnNames> columnNames;
private List<ColumnValues> columnValues;
public List<ColumnNames> getColumnNames() {
return columnNames;
}
public void setColumnNames(List<ColumnNames> columnNames) {
this.columnNames = columnNames;
}
public List<ColumnValues> getColumnValues() {
return columnValues;
}
public void setColumnValues(List<ColumnValues> columnValues) {
this.columnValues = columnValues;
}
然后我会像这样为他们设置两个单独的类:
package com.category;
import java.util.List;
public class ColumnName {
private String columnName;
public String getColumnName() {
return columnName;
}
public void setColumnName(String columnName) {
this.columnName = columnName;
}
}
package com.category;
import java.util.List;
public class ColumnValue {
private String columnValue;
private int columnValueId;
public String getColumnValue() {
return columnValue;
}
public void setColumnValue(String columnValue) {
this.columnValue = columnValue;
}
public String getColumnValueId() {
return columnValueId;
}
public void setColumnValueId(int columnValueId) {
this.columnValueId = columnValueId;
}
}
我觉得我拥有所有正确的部分,但只是不确定这是否比我最初的尝试更好......这很有效。只是寻找输入。提前致谢。
【问题讨论】:
-
您是否使用第三方库来解析 JSON?我建议使用 Jackson 和 ObjectWriter
-
也许这个问题更适合Code Review site?
-
@jclassic - 我们使用杰克逊。
-
看来
columnName可以只是List<String>。至于嵌套列表,看看这个答案here -
附注,因为您是 Java 新手,数据结构(例如
List)可以是通用的,但它们应该是类型化的(它们是 @默认为Object类型的987654330@)。