【问题标题】:How to get value from Map key in java如何从java中的Map键中获取值
【发布时间】:2016-09-06 22:41:35
【问题描述】:

我正在尝试使用以下代码从 Amazon SQS 接收消息属性:

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}

我只想获得值 25。我该怎么做?

【问题讨论】:

    标签: java string amazon-web-services dictionary key


    【解决方案1】:

    试试这个:

    attributes.get("project").getStringValue()
    

    参考资料:

    【讨论】:

      【解决方案2】:

      因为这是在您的 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());
      
      }
      

      【讨论】:

      【解决方案3】:

      使用这个(库 org.json.JSONObject; [java-json.jar])

      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();
                  }
              }

      【讨论】:

        【解决方案4】:

        您需要在地图上循环,这里有一个示例,向您展示如何获取地图的值: 我有一个:Map&lt;String, Object&gt; map = new HashMap&lt;String, Object&gt;();

         for (Entry<String, Object> entry : map.entrySet()) {
        
                             System.out.println("entry key : "+entry.getKey());
                             System.out.println("Object value :"+entry.getValue());
                          }
        

        【讨论】:

          猜你喜欢
          • 2021-01-26
          • 2016-02-19
          • 2015-10-20
          • 1970-01-01
          • 1970-01-01
          • 2015-02-13
          • 1970-01-01
          • 2021-11-29
          • 2023-04-09
          相关资源
          最近更新 更多