地图中的Java地图,REST Web服务

时间:2015-10-02 07:07:40

标签: java json rest dictionary

// 大家好,

所以我正在创建一个收件箱元素,并且......我需要获得字段" startDate"从服务,但我遇到了一个问题,因为这项服务中的所有数据都是"深度" maped ..

我想到的是:

        original = original.replace("Ą", "A");
        original = original.replace("Ć", "C");
        original = original.replace("Ę", "E");
        original = original.replace("Ł", "L");
        original = original.replace("Ń", "N");
        original = original.replace("Ó", "O");
        original = original.replace("Ś ", "S");
        original = original.replace("Ź", "Z");
        original = original.replace("Ż", "Z");

        original = original.replace("ą", "a");
        original = original.replace("ć", "c");
        original = original.replace("ę", "e");
        original = original.replace("ł", "l");
        original = original.replace("ń", "n");
        original = original.replace("ó", "o");
        original = original.replace("ś", "s");
        original = original.replace("ź", "z");
        original = original.replace("ż", "z");
        original = original.replace("ž", "z");

只有在这之后,我才能得到我需要的东西..

好的,它有效,但代码看起来很冗余?!

而且,我希望找到的是一种在地图中制作地图或其他任何方式的方法,以提高代码效率?

提前致谢。

1 个答案:

答案 0 :(得分:1)

很难从你简短的代码片段中准确地告诉你要做什么,但假设你所有人都是一个简单的实用程序,你可以写一个像这样的方法:

public static <T> Map<String, T> get(Map<String, ?> data, String... path)
{
  if (path.length == 0)
  {
    return null;
  }

  Map<String, ?> child = data;   

  for (int i = 0; i < path.length; i++)
  {
    String childKey = path[i];
    child = child.get(childKey);

    if (child == null)
    {
      return null;
    }                
  }  

  return child;    
}

可以像这样调用:

Map<String, Object> data = get(info.readEntity(responseType2), "data", "workflowInstance");

这个代码在速度方面不会比问题中显示的单个Map.get更有效,但它确实更具可读性,imho。