我需要创建一个具有以下语法的数据结构:
[
status: "success",
statusDescription: "statusDescription"
count: "5",
states: [
[stateId: "1", stateDescription: "1 description"],
[stateId: "2", stateDescription: "2 description"],
[stateId: "3", stateDescription: "3 description"],
[stateId: "4", stateDescription: "4 description"],
[stateId: "5", stateDescription: "5 description"]
]
]
我不确定如何在Java中这样做。我正在尝试使用ArrayLists和Maps的各种组合,但是不能完全理解它。
编辑:我实际上需要返回此数据类型作为对JAX-WS @WebMethod调用的响应。创建一个单独的类,尤其是具有List元素的类会导致问题。
答案 0 :(得分:5)
建立自己的班级。请。
class Foo {
private final String status;
private final String statusDescription;
private final int count;
private final List<State> states;
}
class State {
private final int stateId;
private final String stateDescription;
}
答案 1 :(得分:2)
class Response {
private boolean success;
private String statusDescription;
private List<State> states;
}
class State {
private int id;
private String description;
}
答案 2 :(得分:0)
使用数组[或ArrayList
]状态定义一个类。
答案 3 :(得分:0)
?做你自己的课。
status
,statusDescription
是您班级的字符串属性。
count
是一个整数属性(如果需要,可以是String)。
states
可以是枚举,地图或二维数组。无论什么适合。
答案 4 :(得分:0)
为此你可以创建一个类,如
class A
{
private int statusId;
private String Description;
private int count;
}
现在根据您的要求创建数据结构,并将A类对象添加到该数据结构中。
答案 5 :(得分:0)
我会这样写:
public class Whatever {
private Status status;
private String statusDescription;
private int count;
private List<Map<int,String>> states;
}
或者这个:
public class Whatever {
private Status status;
private String statusDescription;
private int count;
private List<State> states;
}
状态和状态是枚举。由你决定。我认为状态有限
答案 6 :(得分:0)
设计真的很糟糕,但你想要的却是:
public static void main(String[] args) {
HashMap<String, Object> hashMap = new HashMap<String, Object>();
hashMap.put("status", "success");
hashMap.put("statusDescription", "statusDescription");
hashMap.put("count", "5");
List<Object> list = new ArrayList<Object>();
hashMap.put("states", list);
for (int i = 1; i < 5; i++) {
HashMap<String, String> hashMapInternal = new HashMap<String, String>();
hashMapInternal.put("stateId", String.valueOf(i));
hashMapInternal.put("stateDescription", i + " description");
list.add(hashMapInternal);
}
}