Gson,JSON和LinkedTreeMap的微妙之处
我最近开始玩字符串,并被告知Google自己的库是处理这些字符串的新方法。JSON
Gson
我的理解是,字符串本质上是一个映射。其中,每个变量都指向字符串中的一个值。JSON
例如:
String jsonInput2 = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\"}
到目前为止,一切都很好。可以使用以下代码将诸如创建此字符串的时间之类的信息分配给变量:JSON
Gson gson = new Gson();
Map<String, String> map = new HashMap<String, String>();
map = (Map<String, String>) gson.fromJson(jsonInput, map.getClass());
String createdAt = map.get("created_at");
在简单的美中,它几乎是艺术的。但这就是美结束的地方,我的困惑开始了。
以下是上述字符串的扩展;JSON
String jsonInput2 = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\",\"user\":{\"id_str\":\"366301747\",\"name\":\"somethingClever\",\"screen_name\":\"somethingCoolAndClever\"}}";
我的问题是这些“括号内的括号”如何为该部分工作?user
JSON
如何将这些内括号内指定的值分配给变量?
任何人都可以向我解释,或者在代码中向我展示如何处理这样的东西,以及我如何使用它?Gson
简而言之,为什么...
String jsonInput = "{\"created_at\":\"Sat Feb 08 15:37:37 +0000 2014\",\"id\":432176397474623489\",\"user\":{\"id_str\":\"366301747\",\"name\":\"somethingClever\",\"screen_name\":\"somethingCoolAndClever\"}}";
Gson gson = new Gson();
Map<String, String> map = new HashMap<String, String>();
map = (Map<String, String>) gson.fromJson(jsonInput, map.getClass());
String name = map.get("name");
System.out.println(name);
...打印出来 ?null