2016-05-11 16 views
0

は、次のコードでアマゾンSQSから属性をJavaでマップキーから値を取得する方法:私がメッセージを受信しようとしています

Map<String, com.amazonaws.services.sqs.model.MessageAttributeValue> attributes = new HashMap<String, com.amazonaws.services.sqs.model.MessageAttributeValue>(); 
attributes = message.getMessageAttributes(); 
for(String key: attributes.keySet()){ 
    System.out.println(key + " - "+ attributes.get(key)); 
} 

、それは出力を返します:

project - {StringValue: 25,StringListValues: [],BinaryListValues: [],DataType: String} 

私がしたいの私はそれをどうやって行うのですか?

答えて

1

これは、Mapで宣言された値型com.amazonaws.services.sqs.model.MessageAttributeValueのオブジェクトです。あなたが通常行うような方法のように、そのオブジェクトの外の値を取得する必要があり

for(String key: attributes.keySet()){ 
    com.amazonaws.services.sqs.model.MessageAttributeValue object = attributes.get(key); 
    //some method to get that 25 value 
    System.out.println(key + " - "+ object.getStringValue()); 

} 
+1

ジュスト:メソッドがobject.gですetStringValue():http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/sqs/model/MessageAttributeValue.html – Akah

0

あなたがここにあなたの地図上のループに必要はの値を取得する方法をお見せする例です。マップ:;

Map<String, com.amazonaws.services.sqs.model.MessageAttributeValue> attributes = new HashMap<String, com.amazonaws.services.sqs.model.MessageAttributeValue>(); 
 
     attributes = message.getMessageAttributes(); 
 
     for(String key: attributes.keySet()){ 
 
      System.out.println(key + " - "+ attributes.get(key)); 
 
      try { 
 
       JSONObject json = new JSONObject(attributes.get(key)); 
 
       System.out.println(json.get("StringValue")); 
 
      } catch (JSONException e) { 
 
       e.printStackTrace(); 
 
      } 
 
     }

for (Entry<String, Object> entry : map.entrySet()) { 

        System.out.println("entry key : "+entry.getKey()); 
        System.out.println("Object value :"+entry.getValue()); 
        } 
0

使用この([javaの-json.jar]ライブラリorg.json.JSONObject): 私が持っています

関連する問題