0

別の本当に明白な質問をして申し訳ありません

次の文字列があります:

{
 status=1,
 msg=1 out of 2 Transactions Fetched Successfully,
 transaction_details=
    {2298597={mihpayid=403993715508098532, request_id=NULL, bank_ref_num=NULL, amt=53.77, disc=0.00, mode=CC, PG_TYPE=AXIS, card_no=512345XXXXXX2346, name_on_card=emu, udf2=0, addedon=2013-06-03 17:34:42, status=failure, unmappedstatus=failed, Merchant_UTR=NULL, Settled_At=NULL},
     6503939={mihpayid=Not Found, status=Not Found}
    }
}

そして、それらを aHashMapまたはArrayList really don't know what to useif if if if transaction ids ex:2298597 and 6503939のような他の値を取得できるはずですstatus etc

どうすればいいのかわからないので、ここで助けを求めることになりました。

いくつかの入力、または可能であればサンプルコードを手伝ってください。

ありがとう

編集

すべての値をマップに入れ、キーで値を取得できるようになりました。次のような値を取得できるようになりました。

transaction_details is the key
and Values : {2298597={mihpayid=403993715508098532, request_id=NULL, bank_ref_num=NULL, amt=53.77, disc=0.00, mode=CC, PG_TYPE=AXIS, card_no=512345XXXXXX2346, name_on_card=emu, udf2=0, addedon=2013-06-03 17:34:42, status=failure, unmappedstatus=failed, Merchant_UTR=NULL, Settled_At=NULL}, 6503939={mihpayid=Not Found, status=Not Found}}

ここで、トランザクション番号に基づいて値をグループ化する必要があります。例:2298597どうすればいいですか?

4

2 に答える 2

1

クラスを作成しますTransactions。すべての変数と、対応するゲッターとセッターを用意します。.equals()あなたと.hashCode()メソッドをオーバーライドします。

そして、何を選択するかについてはHashMapListHashMapに格納されたデータにアクセスするための複雑さがO(1)であるため、HashMapを選択することをお勧めします。リストの場合は O(N)

于 2013-10-01T12:28:41.400 に答える
1

私にとっては、「文字列」用のデータコンテナを作成し(ある種の操作応答ですよね?)、Mapキーが目的の値(ここではいくつかのID)になる場所に配置し、マップの値は単なるデータコンテナオブジェクトになります。

編集:

Map<String,MagicContainer> myMap=new HashMap<String,MagicContainer>();
MagicContainer message=new MagicContainer(message); // where message is lets say your example string
for(String singleId:message.getTransactionIDs()){
    myMap.put(singleId,message);
}

//now you can get your message by one of transactions id
String status=myMap.get("2298597").getStatus();

オフ。クラス内にロジックを書くのはあなた次第ですMagicContainer(メッセージの解析とゲッター+重要な値へのセッター)

編集:

編集で指摘したような場合は、マップの値をリストにラップするだけです。HashMap<String,List<MagicContainer>>()、マップに追加するときに、対応するキーの存在を確認し、存在する場合は、単にメッセージをリストに追加します。それ以外の場合は、新しいリストで新しいキーを作成します。

于 2013-10-01T12:29:42.497 に答える