1

次の構文のデータ構造を作成する必要があります。

[
 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要素を持つクラスを作成すると、問題が発生します。

4

7 に答える 7

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;
}
于 2012-09-27T18:45:07.637 に答える
2
class Response {
   private boolean success;
   private String statusDescription; 
   private List<State> states;
}

class State {
   private int id;
   private String description;
}
于 2012-09-27T18:45:06.193 に答える
0

状態の配列[またはArrayList]を使用してクラスを定義します。

于 2012-09-27T18:44:43.477 に答える
0

?あなた自身のクラスをしてください。

statusstatusDescriptionはクラスの文字列プロパティです。

count整数プロパティ(または必要に応じて文字列)です。

states列挙型、マップ、または2次元配列のいずれかです。合うものは何でも。

于 2012-09-27T18:45:50.243 に答える
0

このためにあなたは次のような1つのクラスを作成することができます

        class A

     {
       private int statusId;
        private String Description;
        private int count;
      }

次に、要件に従ってデータ構造を作成し、そのデータ構造にクラスAのオブジェクトを追加します。

于 2012-09-27T18:47:38.857 に答える
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;
} 

ここで、StateとStatusは列挙型です。それはあなた次第です。ステータスは限られていると思います

于 2012-09-27T18:55:11.423 に答える
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);
    }
}
于 2012-09-27T18:58:47.387 に答える