2016-11-16 3 views
0

Я хочу прочитать пару значений ключа. Но хочу убедиться, что ключ можно зачитать без учета регистра. Но ценность должна была быть сенсационной! Как я могу это сделать?GSON - Convert String case insenstive

У меня есть строка, как это здесь:

String json = "[\n" 
      + " {\n" 
      + "  \"Id\":\"Service1\",\n" 
      + "  \"Version\":\"b1\"\n" 
      + " },\n" 
      + " {\n" 
      + "  \"Id\":\"TestService2\",\n" 
      + "  \"Version\":\"b1\"\n" 
      + " }\n" 
      + "]"; 

В Java я сделать это здесь, чтобы получить список карт:

Gson gson = new Gson(); 
List<Map> list = gson.fromJson(json, List.class); 

Но я хочу, чтобы убедиться, что идентификатор и версия нечувствительны к регистру, считывая информацию с Java.

for (int i = 0; i < list.size(); i++) { 
    System.out.println("Element: " + list.get(i).get("id")); 
} 

Некоторые идеи для решения этой проблемы?

+0

вместо того, чтобы для контура Ьгу итератора или ListIterator и System.out.println ("Элемент:" + list.get (I) .get ("ID")) здесь используйте «Id» –

+0

да, вам нужно передать тип методу json ... –

ответ

1

попробовать передавая тип вместо того, чтобы:

List<Map> listFromThread = new Gson().fromJson(string_json, new TypeToken<ArrayList<Map>>() { }.getType()); 
+0

Кажется, что не работает для меня. – notionquest

+0

вы получаете исключение ??? –

+0

Нет, я получаю значение null для id. System.out.println ("Элемент:" + list.get (i) .get ("id")); ... когда я перехожу на верхний регистр «Id», я получаю значение. Gson версия 2.6.1. – notionquest