2016-11-16 93 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

相关问题