2016-11-16 30 views
0

我想讀出鍵值對。但要確保,鑰匙可以讀出不區分大小寫。但價值必須是大小寫敏感!我怎樣才能做到這一點?GSON - 轉換字符串不區分大小寫

我有這樣這裏的字符串:

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

但我希望得到肯定,那ID版本不區分大小寫,而用Java讀出信息。

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

有些想法可以解決這個問題嗎?

+0

代替for循環試迭代或的ListIterator和 的System.out.println( 「元素:」 + list.get(ⅰ)獲得( 「ID」) )這裏使用「Id」 –

+0

是的,你需要將類型傳遞給j​​son方法... –

回答

1

嘗試傳遞類型,而不是:

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

似乎沒有爲我工作。 – notionquest

+0

你得到一個異常? –

+0

不,我得到id爲空值。 System.out.println(「Element:」+ list.get(i).get(「id」)); ...當我更改爲大寫「身份證」時,我獲得了價值。 Gson版本2.6.1。 – notionquest

相關問題